Есть некая таблица с датами и прочей инфой. необходимо сгруппировать инфу только по месяцам. Вот что я попробовал
Данный код группирует, однако только если дата полностью совпадает. Мне необходимо, что бы группировка происходила только по месяцам, то есть записей должно быть всего 12. В чем я ошибся?
1 ответ 1
Ни в чём не ошибся, если нужен анализ продаж по месяцам, то там и так будет одна из агрегатных функций или COUNT или SUM и приведённый код будет нормально работать. Если работает только, если дата полностью совпадает, значит не правильно выделяете месяц. Тонкостей MS-Access не помню, а в PostgreSQL это будет выглядеть следующим образом:
Ну а если всё-таки Наименование , то естественно записей будет не 12, а будет зависеть от количества различный наименований проданных в данные месяца. Хотя, если из Delphi, то это даже удобнее будет, там в табличке группировку сделаете по месяцам и будет плюсиком красиво разворачиваться каждый месяц с суммой в footer
Всё ещё ищете ответ? Посмотрите другие вопросы с метками sql delphi ms-access или задайте свой вопрос.
Похожие
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
дизайн сайта / логотип © 2020 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2020.1.17.35809
Я не уверен, что я должен написать в следующем запросе SQL, чтобы показать столбец «Дата», как это: «месяц-год» — «9-2011».
Итак, что я хочу сделать, это изменить данные из первого столбца, чтобы показать месяц и год, а не только с указанием месяца.
Я предполагаю, что это MS SQL, как это выглядит синтаксис MS SQL.
Таким образом, вы должны положить в групповой линии то же самое, как и в выберите экс:
Или, как @ 40-Love упомянули вы можете бросить с ведущими нулями:
Если я правильно понимаю. Для того, чтобы сгруппировать ваши результаты, как просили, ваша группа К статье должна иметь такое же выражение, как ваше отборного заявления.
Для отображения даты в формате «месяц-дата» изменить ". к «-» Полный синтаксис будет что-то вроде этого.
В PostgreSQL можно написать подобный запрос с функцией даты-формат (to_char) и группировкой только по дате:
Такая вещь, безусловно, возможно с SQL-сервером тоже, не так ли?
Если вы хотите, чтобы остаться имея поле в даты и времени типа данных, попробуйте использовать это:
Это также легко изменить в группу часов, дни, недели, года .
Я надеюсь , что это приносит пользу кому — то,
SQL Server 2012 выше, я предпочитаю использовать функцию формата (), более упростить.
186395 просмотра
7 ответа
1842 Репутация автора
Я не уверен, что я должен написать в следующем запросе SQL, чтобы отобразить столбец «дата», например: «месяц-год» — «9-2011».
Итак, я хочу изменить данные из первого столбца, чтобы они отображали месяц и год, а не только месяц.
Ответы (7)
12 плюса
5919 Репутация автора
Я полагаю, что MS SQL выглядит как синтаксис MS SQL.
Таким образом, вы должны поместить в строку группы то же самое, что и в select ex:
138 плюса
60451 Репутация автора
Или, как упомянул @ 40-Love, вы можете использовать лидирующие нули:
Автор: Lamak Размещён: 23.03.2011 01:53
5 плюса
166 Репутация автора
Если я правильно понимаю. Чтобы сгруппировать результаты в соответствии с запросом, предложение Group By должно иметь то же выражение, что и оператор select.
Для отображения даты в формате «месяц-дата» измените «.» to ‘-‘ Полный синтаксис будет примерно таким.
Автор: eupton Размещён: 23.03.2011 01:56
1 плюс
29739 Репутация автора
В postgresql я могу написать аналогичный запрос с функцией формата даты (to_char) и группировкой по дате:
Такое возможно и с SQL-сервером, не так ли?
-6 плюса
1 Репутация автора
Если вы хотите сохранить поле в типе datetime, попробуйте использовать это:
Это также легко изменить в группу по часам, дням, неделям, годам .
Я надеюсь, что это кому-то пригодится,
2 плюса
139 Репутация автора
SQL Server 2012 выше, я предпочитаю использовать функцию format (), более упростить.
Автор: YHTAN Размещён: 08.04.2019 02:14
плюса
1 Репутация автора
Вы можете попробовать умножение, чтобы скорректировать год и месяц, чтобы они были одним числом. Это, по моим тестам, работает намного быстрее, чем формат (дата, «гггг.ММ»). Я предпочитаю иметь год до месяца для сортировки. Код, созданный из MS SQL Server Express версии 12.0.