|
Подскажите с запросом по периодам | ☑ | ||
---|---|---|---|---|
0
Genayo
10.07.12
✎
13:27
|
Имеются 2 таблицы Т1 Т2
Дата |Значение НачалоПериода | КонецПериода -------------------- --------------------------------------- 01.01.2012 0:00:00| 10 02.06.2012 0:00:00| 05.06.2012 23:59:59 04.06.2012 0:00:00| 20 08.06.2012 0:00:00| 16.06.2012 23:59:59 10.06.2012 0:00:00| 30 20.06.2012 0:00:00| 29.06.2012 23:59:59 16.06.2012 0:00:00| 40 25.06.2012 0:00:00| 50 В результате нужно получить Периоды действия значений, т.е в данном примере НачалоПериода | КонецПериода |Значение -------------------------------------------- 02.06.2012 0:00:00| 03.06.2012 23:59:59| 10 04.06.2012 0:00:00| 05.06.2012 23:59:59| 20 08.06.2012 0:00:00| 09.06.2012 23:59:59| 20 10.06.2012 0:00:00| 15.06.2012 23:59:59| 30 16.06.2012 0:00:00| 16.06.2012 23:59:59| 40 20.06.2012 0:00:00| 24.06.2012 23:59:59| 40 25.06.2012 0:00:00| 29.06.2012 23:59:59| 50 Решил таким запросом, подскажите, как его можно соптимизировать или получить результат более простым запросом. ВЫБРАТЬ Т1.Дата КАК ДатаН, МИНИМУМ(ДОБАВИТЬКДАТЕ(Т1_1.Дата, СЕКУНДА, -1)) КАК ДатаК, Т1.Значение ПОМЕСТИТЬ ВТ ИЗ Т1 КАК Т1 ВНУТРЕННЕЕ СОЕДИНЕНИЕ Т1 КАК Т1_1 ПО (Т1_1.Дата > Т1.Дата) СГРУППИРОВАТЬ ПО Т1.Дата, Т1.Значение ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ Т1.Дата, КОНЕЦПЕРИОДА(Т1.Дата, МЕСЯЦ), Т1.Значение ИЗ Т1 КАК Т1 ГДЕ Т1.Дата В (ВЫБРАТЬ МАКСИМУМ(Т1.Дата) ИЗ Т1) ; /////////////////////////////// ВЫБРАТЬ ВЫБОР КОГДА ВТ.ДатаН < Т2.НачалоПериода ТОГДА Т2.НачалоПериода ИНАЧЕ ВТ.ДатаН КОНЕЦ КАК НачалоПериода, ВЫБОР КОГДА ВТ.ДатаК > Т2.КонецПериода ТОГДА Т2.КонецПериода ИНАЧЕ ВТ.ДатаК КОНЕЦ КАК КонецПериода, ВТ.Значение ИЗ ВТ КАК ВТ ВНУТРЕННЕЕ СОЕДИНЕНИЕ Т2 КАК Т2 ПО (ВЫБОР КОГДА ВТ.ДатаН < Т2.НачалоПериода ТОГДА Т2.НачалоПериода ИНАЧЕ ВТ.ДатаН КОНЕЦ < ВЫБОР КОГДА ВТ.ДатаК > Т2.КонецПериода ТОГДА Т2.КонецПериода ИНАЧЕ ВТ.ДатаК КОНЕЦ) УПОРЯДОЧИТЬ ПО НачалоПериода |
|||
1
Genayo
10.07.12
✎
13:55
|
Граждане, ну помогите кто чем может...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |