#mysql #date #group-by #records
#mysql #Дата #группировать по #записи
Вопрос:
Извините, я не могу быть более конкретным, но я не знаю, как описать мою проблему в названии.. соответственно, я не знаю, как искать подобный вопрос.
Итак, вот в чем дело. У меня есть эта таблица с записями:
Как вы можете видеть, у меня есть данные, введенные в разные месяцы с разным типом. Моя цель — получить последнюю введенную сумму, сгруппированную по типу, и это должно быть ограничено датой.
Например:
Если я укажу дату 2011-03-01, запрос должен вернуть 3 записи с суммой — 10, 20 и 30, потому что для type = 1 ближайшая вставленная запись к ‘2011-03-01’ относится к дате 2011-01-01 с суммой 10. Для type=2 ближайшей датой к ‘2011-03-01’ является 2011-02-01 с суммой 20. А для type= 3 ближайшей к ‘2011-03-01’ является ‘2011-03-01’, поэтому она возвращает amount = 30.
Итак, как сформировать запрос MySQL?
Ответ №1:
Прямо сейчас я могу думать только о подвыборной версии:
SELECT type, amount
FROM table AS t
WHERE dat = (
SELECT MAX(dat)
FROM table
WHERE type=t.type
AND dat <= '2011-03-01'
)
Комментарии:
1. Большое вам спасибо. Это не такое уж сложное решение. Какой позор. Еще раз спасибо.