| date1 | date 2
12 | 500 | 2021-01-01 | 2021-12-30
12 | 700 | 2021-10-01 | 2021-10-30
Которую я получаю простым запросом
SELECT sid, mass, date1, date 2
-- SELECT sid, mass, date1, date 2, min(ADDDATE(CURRENT_DATE(), INTERVAL 1 DAY)-datefrom)
FROM sometable
WHERE 1=1
AND yid = 12
AND enabled = 1
AND date1 < ADDDATE(CURRENT_DATE(), INTERVAL 1 DAY)
AND date2 > ADDDATE(CURRENT_DATE(), INTERVAL 1 DAY)
-- GROUP BY yid
ORDER BY datefrom DESC, dateto DESC
Мне нужно получить запись с mass 700
Однако если я пытаюсь использовать GROUP BY yid то таблица свертывается до строки с mass 500, ок. Я вычиляю разницу дат, получаю что строка с mass 700 имеет меньшую разницу, применяю функцию min и у меня получается строка
12 | 500 | 2021-01-01 | 2021-12-30 | 5
Где 5 это минимум из столбаца с mass 700!!! Как и почему? Что я не так делаю?
Всё равно получаю две записи ...
Обсуждают сегодня