Получить ближайшие записи к определенной дате, сгруппированные по типу - PullRequest
2 голосов
/ 06 апреля 2011

Извините, я не могу быть более конкретным, но я не знаю, как описать мою проблему в заголовке ... соответственно, я не знаю, как искать похожий вопрос.

Итак, вот сделка. У меня есть эта таблица с записями:

sample database table

Как видите, у меня есть данные, введенные в разные месяцы с разным типом. Моя цель - получить последнюю введенную сумму, сгруппированную по типу, и это должно быть ограничено по дате.

Например:

Если я укажу дату 2011-03-01, запрос должен вернуть 3 записи с количеством - 10, 20 и 30, потому что для типа = 1 ближайшая вставленная запись к '2011-03-01' находится на дате 2011 -01-01 с суммой 10. Для типа = 2 ближайшей датой «2011-03-01» является 2011-02-01 с суммой 20. А для типа = 3 ближайшей к «2011-03-01» является «2011-03-01», поэтому возвращает сумму = 30.

Так как же сформировать запрос MySQL?

1 Ответ

1 голос
/ 06 апреля 2011

Прямо сейчас я могу думать только о подвыборке версии:

SELECT type, amount
FROM table AS t
WHERE dat = (
    SELECT MAX(dat)
    FROM table
    WHERE type=t.type
        AND dat <= '2011-03-01'
)
...