|
Операции с строками запроса | ☑ | ||
---|---|---|---|---|
0
Джон Тирби
30.05.13
✎
12:23
|
День добрый, подскажите люди добрые, может кто сталкивался.
Есть достаточно простенький запрос в котором необходимо добавить расчетное поле, его значением будет разница значений поля текущей строки и следующей за ней. Или я хочу невозможного. Вот запрос ВЫБРАТЬ ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период КАК Период, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовРасход, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&Начало, &Конец, День, , ) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты ГДЕ ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент = &Контрагент УПОРЯДОЧИТЬ ПО Период В результате вот что хочу http://clip2net.com/s/593r1T заранее спасибо |
|||
1
Wobland
30.05.13
✎
12:25
|
ты хочешь возможного
|
|||
2
Wobland
30.05.13
✎
12:25
|
(1) как-то я поспешил. ты хочешь непонятного
|
|||
3
Джон Тирби
30.05.13
✎
12:25
|
ссылку побило, вот
http://clip2net.com/s/593r1T |
|||
4
Джон Тирби
30.05.13
✎
12:28
|
тоесть нужно расчитать разницу между полями Период для каждой строки с ее предыдущей
|
|||
5
kosts
30.05.13
✎
12:28
|
Помести запрос во временную таблицу. В следующем запросе соедини временную таблицу саму с собой по каким либо полям. Затем ну и посчитай там же нужную разницу.
|
|||
6
Mitriy
30.05.13
✎
12:53
|
ВЫБРАТЬ
ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период КАК Период, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовРасход, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток ПОМЕСТИТЬ ВТ_ОстаткиОбороты ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&Начало, &Конец, День, Движения, ) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты ГДЕ ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент = &Контрагент ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_ОстаткиОбороты.Период, ВТ_ОстаткиОбороты.Контрагент, МАКСИМУМ(ВТ_ОстаткиОбороты1.Период) КАК Период1 ПОМЕСТИТЬ ВТ_Периоды ИЗ ВТ_ОстаткиОбороты КАК ВТ_ОстаткиОбороты ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ОстаткиОбороты КАК ВТ_ОстаткиОбороты1 ПО ВТ_ОстаткиОбороты.Контрагент = ВТ_ОстаткиОбороты1.Контрагент И ВТ_ОстаткиОбороты.Период > ВТ_ОстаткиОбороты1.Период СГРУППИРОВАТЬ ПО ВТ_ОстаткиОбороты.Контрагент, ВТ_ОстаткиОбороты.Период ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_Периоды.Период, ВТ_ОстаткиОбороты.Контрагент, ВТ_ОстаткиОбороты.СуммаВзаиморасчетовНачальныйОстаток, ВТ_ОстаткиОбороты.СуммаВзаиморасчетовПриход, ВТ_ОстаткиОбороты.СуммаВзаиморасчетовРасход, ВТ_ОстаткиОбороты.СуммаВзаиморасчетовКонечныйОстаток ПОМЕСТИТЬ ВТ_ПредыдущиеЗначения ИЗ ВТ_ОстаткиОбороты КАК ВТ_ОстаткиОбороты ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Периоды КАК ВТ_Периоды ПО ВТ_ОстаткиОбороты.Период = ВТ_Периоды.Период1 И ВТ_ОстаткиОбороты.Контрагент = ВТ_Периоды.Контрагент ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_ОстаткиОбороты.Период КАК Период, ВТ_ОстаткиОбороты.Контрагент КАК Контрагент, ВТ_ОстаткиОбороты.СуммаВзаиморасчетовНачальныйОстаток - ЕСТЬNULL(ВТ_ПредыдущиеЗначения.СуммаВзаиморасчетовНачальныйОстаток, 0) КАК НачальныйОстатокРазница, ВТ_ОстаткиОбороты.СуммаВзаиморасчетовНачальныйОстаток, ВТ_ОстаткиОбороты.СуммаВзаиморасчетовПриход, ВТ_ОстаткиОбороты.СуммаВзаиморасчетовРасход, ВТ_ОстаткиОбороты.СуммаВзаиморасчетовКонечныйОстаток ИЗ ВТ_ОстаткиОбороты КАК ВТ_ОстаткиОбороты ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ПредыдущиеЗначения КАК ВТ_ПредыдущиеЗначения ПО ВТ_ОстаткиОбороты.Период = ВТ_ПредыдущиеЗначения.Период И ВТ_ОстаткиОбороты.Контрагент = ВТ_ПредыдущиеЗначения.Контрагент УПОРЯДОЧИТЬ ПО Контрагент, Период |
|||
7
Mitriy
30.05.13
✎
12:55
|
в первом запросе условие лучше в параметры виртуальной таблицы перенести...
ВЫБРАТЬ ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период КАК Период, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовРасход, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток ПОМЕСТИТЬ ВТ_ОстаткиОбороты ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&Начало, &Конец, День, Движения, Контрагент = &Контрагент) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты |
|||
8
Джон Тирби
30.05.13
✎
13:59
|
Все получилось, спасибо большое!
ВЫБРАТЬ ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Период КАК Период, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовПриход, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовРасход, ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток ПОМЕСТИТЬ Временная ИЗ РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&Начало, &Конец, День, , ) КАК ВзаиморасчетыСКонтрагентамиОстаткиИОбороты ГДЕ ВзаиморасчетыСКонтрагентамиОстаткиИОбороты.Контрагент = &Контрагент ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Временная.Период КАК ДатаОперации, МИНИМУМ(Временная1.Период) КАК ДатаСледующейОпреации, Временная.Контрагент, Временная.СуммаВзаиморасчетовНачальныйОстаток, Временная.СуммаВзаиморасчетовПриход, Временная.СуммаВзаиморасчетовРасход, Временная.СуммаВзаиморасчетовКонечныйОстаток ИЗ Временная КАК Временная ВНУТРЕННЕЕ СОЕДИНЕНИЕ Временная КАК Временная1 ПО Временная.Контрагент = Временная1.Контрагент И Временная.Период < Временная1.Период СГРУППИРОВАТЬ ПО Временная.Контрагент, Временная.Период, Временная.СуммаВзаиморасчетовНачальныйОстаток, Временная.СуммаВзаиморасчетовПриход, Временная.СуммаВзаиморасчетовРасход, Временная.СуммаВзаиморасчетовКонечныйОстаток УПОРЯДОЧИТЬ ПО ДатаОперации |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |