Запрос по месяцу с поля даты - PullRequest
1 голос
/ 08 апреля 2009

У меня есть набор Access d / b, сгруппированных уже по годам. в течение определенного года у меня есть поле REPORTDATE, которое является стандартным полем mm / dd / yyyy. Однако мне нужно произвести запросы, которые возвращают данные по месяцам. Например, я просто хочу просмотреть записи за январь, записи за февраль, записи за март и т. Д., Чтобы я мог их суммировать и работать с ними.

Использовать ли выражение в поле Критерии представления дизайна запроса?

Заранее спасибо.

Ответы [ 3 ]

8 голосов
/ 08 апреля 2009

Я просто хочу посмотреть записи за январь, записи за февраль, записи за март и т. Д., Чтобы я мог суммировать их и работать с ними.

Вы можете сделать все , что в одном выражении sql:

select month(reportdate), sum( the column you wish to sum )
from tablename
group by month(reportdate);

НО ЖДИТЕ БОЛЬШЕ!

Далее, скажите, что несколько продавцов продают вещи, и вы хотите показать продажи каждого продавца по месяцам

select month(reportdate), salesperson, sum( the column you wish to sum )
from tablename
group by month(reportdate), salesperson;

Показывает сумму за месяц на продавца.

Вы знаете, немцы всегда делают хорошие вещи!

Что бы вы хотели видеть одинаковыми суммами, но вместо того, чтобы сравнивать продавцов друг с другом в каждом месяце, вы хотели сравнить, для каждого продавца, как они делали из одного месяца в другой?

Просто измените порядок группы по:

select month(reportdate), saleperson, sum( the column you wish to sum )
from tablename
group by salesperson, month(reportdate);

Тако, Феттучини, Лингуини, Мартини, Бикини, ты будешь любить мои орехи!

Сила SQL! Как показывали по ТВ! Заказать сейчас!

"выберите месяц (reportdate), сумму (столбец, который вы хотите суммировать) из группы имен таблиц по месяцам (reportdate);" ЭТО ОЧЕНЬ ПОЛЕЗНО, СПАСИБО. И ты веселый. ОДНАКО, можете ли вы уточнить для меня, где, черт возьми, этот код идет ?! В построителе expresison что ли? Спасибо огромное. - Рик (19 минут назад)

В Access, я думаю, в графическом меню Query Builder выберите edit | SQL и просто введите. И никогда не возвращайся к графике!

Вы - энергичный, дальновидный, предпринимательски настроенный человек в движении! Это не Oldsmobile вашего отца! Вы бы не использовали экранную клавиатуру для ввода документа, перетаскивая буквы на странице, не так ли ?! Так зачем делать SQL-запрос? Получить в SQL! КАК ПОКАЗЫВАЛИ ПО ТВ! Все классные дети и гепатиты делают это! Заказ СЕЙЧАС!

2 голосов
/ 08 апреля 2009

Вы можете использовать формат, например:

Format([REPORTDATE],"mmm yy")

Или месяц:

SELECT * FROM Table WHERE Month([REPORTDATE]) = 10

Схема запроса, который может подойти, вставьте его в представление SQL окно конструктора запросов, меняющее таблицу на имя вашей таблицы:

SELECT Format([REPORTDATE],"yyyy mm"), Count([ReportDate])
FROM Table
GROUP BY Format([REPORTDATE],"yyyy mm")
0 голосов
/ 08 апреля 2009

Я бы не стал делать это в источнике записей отчета. Я бы сделал источник записей обычным оператором SELECT и использовал бы сортировку / группировку отчета. Если вы группируете по полю даты (которое действительно является типом даты), вы можете выбрать GROUP ON:

Каждое значение (по умолчанию) Год Qtr Месяц Неделю День Час Минута

Я думаю, что это быстрее, чем GROUP BY для функции, но тот, кто заинтересовался, должен на самом деле попробовать.

Конечно, если ваш SELECT с GROUP BY не имеет предложения WHERE, будет гораздо эффективнее, если вы запустите отчет с отфильтрованными значениями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...