Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Группировка по периодам. / 3 сообщений из 3, страница 1 из 1
15.04.2004, 12:47
    #32482559
Bezum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировка по периодам.
Моя проблемма заключается в группировке попериодам. Тоесть, у меня есть таблица, в которой, скажем 2 поля дата и деньги. Так вот, мне надо сгруппировать данные таким образом чтоб в результате получать таблицу с суммами зп периоды (по неделям, по месяцам, по кварталам). Такое возможно при помощи SQL??? Если возможно то как, если нет, подскажите другие пути решения. База Access, среда разработки C++Builder или Delphi не критично.
...
Рейтинг: 0 / 0
16.04.2004, 08:12
    #32483653
Станислав C.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировка по периодам.
Проблема здесь заключается не в SQL, а в интерпретации периодов.
Как, например, компьютер будет знать, что 01.01. принадлежит первой неделе года и первому кварталу, если мы ему об этом не сообщим?! (С месяцем все просто: используется функция определения номера месяца)

Для корректной работы с датами должна быть специальная таблица, которая связывала бы конкретную дату и номер недели или квартала. Например такая:

день c день по неделя квартал
01.01.2004 04.01.2004 1 1
05.01.2004 11.01.2004 2 1
12.01.2004 18.01.2004 3 1 и т.д.

далее: SQL-запрос пишется примерно так (должен быть параметр, задаваемый пользователем):
1. Отбираем интересующий нас период:
select .... from ... where <неделя>=<параметр> into cursor query

2. Отбираем данные за период
select ..... from ..... where <data> between query.<день с> and query.<день по> into ....

По другому вроде бы никак...
...
Рейтинг: 0 / 0
17.04.2004, 00:21
    #32485188
Константин Лисянский
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировка по периодам.
На самом деле, может быть не одна таблица, а целая группа таблиц, описывающих структуру времени.

Например, таблицы год, полугодие, квартал, месяц, декада, неделя, день.
Если есть такие таблицы, то все группировки делаются легко - делаете джойн по дате к таблице день, а к ней можно приджойнить неделю, ну, и так далее.
Можно и одну таблицу иметь денормализованную, где будет информация о днях, неделях, месяцах, годаХ храниться. Джойн с этой таблицей и группировка по её полям решает Вашу задачу.

Как создать и наполнить такие таблицы можно почитать здесь .

С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Группировка по периодам. / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]