Страницы

Поиск по вопросам

пятница, 24 января 2020 г.

Группировка по месяцам даты SQL

#sql #delphi #ms_access


Есть некая таблица с датами и прочей инфой. необходимо сгруппировать инфу только
по месяцам. Вот что я попробовал

Select наименование, month(дата)
FROM таблица1
Group by month(дата), наименование


Данный код группирует, однако только если дата полностью совпадает. Мне необходимо,
что бы группировка происходила только по месяцам, то есть записей должно быть всего
12. В чем я ошибся?
    


Ответы

Ответ 1



Ни в чём не ошибся, если нужен анализ продаж по месяцам, то там и так будет одна из агрегатных функций или COUNT или SUM и приведённый код будет нормально работать. Если работает только, если дата полностью совпадает, значит не правильно выделяете месяц. Тонкостей MS-Access не помню, а в PostgreSQL это будет выглядеть следующим образом: SELECT month, COUNT(*) FROM art --Или SUM(fieldname) JOIN LATERAL EXTRACT(MONTH FROM дата) month ON TRUE --Просто чтобы не писать то же самое в GROUP BY WHERE дата IS NOT NULL GROUP BY month ORDER BY month Ну а если всё-таки Наименование, то естественно записей будет не 12, а будет зависеть от количества различный наименований проданных в данные месяца. Хотя, если из Delphi, то это даже удобнее будет, там в табличке группировку сделаете по месяцам и будет плюсиком красиво разворачиваться каждый месяц с суммой в footer

Комментариев нет:

Отправить комментарий