Выбор последних данных из БД кроме сегодняшних

209
10 января 2018, 15:51

Нужно получить последние данные для каждого Name без учета сегодняшних. Например (сегодня, скажем, 07 янв 2018): id Name myDate Val1 Val2 1 A 2018-01-07 10 15 2 A 2018-01-06 8 23 3 A 2018-01-05 6 11 4 B 2018-01-05 26 73 5 A 2018-01-03 1 44 6 B 2018-01-03 56 18 7 C 2018-01-02 66 88 ...

Мне нужен результат: 2 A 2018-01-06 8 23 4 B 2018-01-05 26 73 7 C 2018-01-02 66 88

Запрос, включая сегодняшние данные, выглядит так:

select Name,myDate,Val1,Val2 from myTable join ( select Name, max(myDate) as myDate from myTable group by Name ) lastvalues using(Name, myDate)

как исключить сегодняшние данные?

Answer 1

Сделав так - where myDate < CURDATE() group by Name - вы найдете максимальные даты, не включая сегодня. и ваш запрос должен работать верно. Запрос полностью

select Name,myDate,Val1,Val2
    from myTable
    join (
        select Name, max(myDate) as myDate
            from myTable
            where myDate < CURDATE()
            group by Name
    ) lastvalues using(Name, myDate)

demo

Answer 2

Если есть группировка, то достаточно будет WHERE myDate < :current_date. Где current_date = '2018-01-07'

Пример:

SELECT `Name`,`myDate`,`Val1`,`Val2`
FROM `myTable`
WHERE `myDate` < :current_date
GROUP BY `Name`
ORDER BY `myDate` DESC

Стоит учитывать, что при группировке MYSQL выполнить перебор всех подходящих записей. Т.е. все записи для A, B и т.п. И только потом сгруппирует - занесет в результат первый найденный.

READ ALSO
GetKeyboardState: определение состояния клавиши

GetKeyboardState: определение состояния клавиши

Не могу понять как работает функция GetKeyboardStateВроде как должна определять состояние всех клавиш, но правильность результата зависит от места...

212
Не могу подключиться к Ораклу из VS2017

Не могу подключиться к Ораклу из VS2017

Пишу под ASPNET MVC Framework веб-сервис, который должен работать с СУБД Oracle

229
Unity c# cписок не успевает инициализироваться в конструкторе

Unity c# cписок не успевает инициализироваться в конструкторе

Делаю 2d тавер-дефенс, решил сделать конструктор для удобного создания башен, но столкнулся с ошибкой NullReferenceException: Object reference not set to an instance of an object...

220
Классы. C#. Вывод результатов

Классы. C#. Вывод результатов

Доброго вечера всем обитателем портала (форума)К экзамену были даны практические задания (краткие) по классам

341