|
Запрос с DatePart
|
|||
---|---|---|---|
#18+
Здравствуйте, уважаемые. По-тихоньку с вашей помощью двигается проектик... Жду очередной помощи. Есть таблица со статистикой с большим кол-вом записей (500-1000 тыс. строк). IDtestDTEquity902.01.2015 13:18:00-136.00902.01.2015 13:19:00-96.00902.01.2015 13:20:00-136.00902.01.2015 13:21:008.00902.01.2015 13:22:000.00 Шаг записей в таблице 1 минута. Для целей формирования читаемого отчета (графика) мне необходима группировка по полю [DT] (тип Date)/ Жесткие настройки худо-бедно получаются, например для группировки по неделям: Код: sql 1. 2. 3.
Но уже для группировки с шагом в 1 день DatePart у меня не "взлетел". Сделал Код: sql 1. 2. 3.
Но хочется сделать единообразно, без костылей- формировать строку в ВБА и запускать... Идея в том, чтобы пользователь задавал анализируемый период, а запрос формировался из расчета, допустим, 50 записей., т.е. если период=год, то группировка по неделям, период = 2 месяца, то группировка с "шагом" 1 день и т.п. Спасибо заранее... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2016, 17:03 |
|
Запрос с DatePart
|
|||
---|---|---|---|
#18+
"для группировки с шагом в 1 день" я бы использовал DateValue([tEquity]![DT]) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2016, 17:30 |
|
Запрос с DatePart
|
|||
---|---|---|---|
#18+
Анатолий ( Киев )"для группировки с шагом в 1 день" я бы использовал DateValue([tEquity]![DT]) Спасибо, приму. Но может есть некая универсальная функция, на входе- период, на выходе- "градация" (час, день, неделя, месяц). Градацию можно вычислить по длине периода. 1121... еще глянь ВБшные функции - ваще Все Спасибо, у меня тоже пятница:) С чем всех и поздравляю!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2016, 17:46 |
|
Запрос с DatePart
|
|||
---|---|---|---|
#18+
Fora74может есть некая универсальная функция, на входе- период, на выходе- "градация" (час, день, неделя, месяц).Нет. Но не вижу особой сложности в создании такой функции. Есть список "градаций", берём ту, которая попадает в диапазон (период / макс.кол.единиц) .. (период / мин.кол.единиц). Если таких несколько - самую близкую к геом. центру. Вот только слишком большая разница между "градациями" - неплохо бы добавить промежуточных. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2016, 19:41 |
|
Запрос с DatePart
|
|||
---|---|---|---|
#18+
AkinaFora74может есть некая универсальная функция, на входе- период, на выходе- "градация" (час, день, неделя, месяц).Нет. Но не вижу особой сложности в создании такой функции. Есть список "градаций", берём ту, которая попадает в диапазон (период / макс.кол.единиц) .. (период / мин.кол.единиц). Если таких несколько - самую близкую к геом. центру. Вот только слишком большая разница между "градациями" - неплохо бы добавить промежуточных. Топорное мое видение: Допустим, пользователь задает период 3 мес (62 рабочих дня, 92 календарных). Нам необходимо привести к 50 значениям на выходе. На входе: 62(дня)*24(часа)*60(мин)=89 280 мин. K=89 280:50=1785 На выходе: Запрос, где производится группировка каждые 1785 минут (записей). Вот..., с вами поговорил, легче стало:) авторAkinaВот только слишком большая разница между "градациями" - неплохо бы добавить промежуточных.Для начала не надо промежуточных, дайте базовые.. Думаю, мою функцию можно реализовать, но не хотелось бы, чтоб время исполнения было неразумно большим... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2016, 20:24 |
|
|
start [/forum/topic.php?fid=45&msg=39349991&tid=1612973]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
18ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 339ms |
total: | 480ms |
0 / 0 |