![]() |
|
Запрос периодами - заполнение нулевых значений | ☑ | ||
---|---|---|---|---|
0
DrLekter
18.07.16
✎
16:55
|
Стоит задача сделать отчет по гладкости изменения себестоимости. Сравниваю текущую цену с предыдущей:
"ВЫБРАТЬ | ОстаткиОстаткиИОбороты.Номенклатура КАК Номенклатура, | ОстаткиОстаткиИОбороты.КоличествоНачальныйОстаток, | ОстаткиОстаткиИОбороты.СуммаГРННачальныйОстаток, | ОстаткиОстаткиИОбороты.Период КАК Период |ПОМЕСТИТЬ ВремОстатки |ИЗ | РегистрНакопления.Остатки.ОстаткиИОбороты( | &ДатаС, | &ДатаПо, | День, | , | Номенклатура В ИЕРАРХИИ (&Номенклатура) | И Склад В (&Склады)) КАК ОстаткиОстаткиИОбороты | |ИНДЕКСИРОВАТЬ ПО | Период, | Номенклатура |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗЛИЧНЫЕ | ВремОстатки.Период |ПОМЕСТИТЬ ВремПериоды |ИЗ | ВремОстатки КАК ВремОстатки |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВремОстатки.Номенклатура, | ВремПериоды.Период |ПОМЕСТИТЬ ВремНоменклатураПоПериодам |ИЗ | ВремОстатки КАК ВремОстатки | ПОЛНОЕ СОЕДИНЕНИЕ ВремПериоды КАК ВремПериоды | ПО (ИСТИНА) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗЛИЧНЫЕ | ВН.Номенклатура КАК Номенклатура, | ВН.Период КАК Период, | ДОБАВИТЬКДАТЕ(ВН.Период, ДЕНЬ, 1) КАК Период1, | ВО.СуммаГРННачальныйОстаток / ВО.КоличествоНачальныйОстаток КАК ТекущаяЦена |ПОМЕСТИТЬ ВремВыборка |ИЗ | ВремНоменклатураПоПериодам КАК ВН | ЛЕВОЕ СОЕДИНЕНИЕ ВремОстатки КАК ВО | ПО ВН.Номенклатура = ВО.Номенклатура | И ВН.Период = ВО.Период |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВремВыборка.Номенклатура, | ВремВыборка.Период, | ВремВыборка.Период1, | ВремВыборка.ТекущаяЦена, | ВремВыборка1.ТекущаяЦена КАК ВчерашняяЦена |ИЗ | ВремВыборка КАК ВремВыборка | ЛЕВОЕ СОЕДИНЕНИЕ ВремВыборка КАК ВремВыборка1 | ПО ВремВыборка.Номенклатура = ВремВыборка1.Номенклатура | И ВремВыборка.Период = ВремВыборка1.Период1" Замечательно работает, если продукция каждый день есть на складе. А если через раз, то вчерашняя цена нулевая - получается 100%ный скачок. Можно ли заполнить нулевые значения последним ненулевым, не выгружаясь в таблицу значений (подразумевается, что когда вся продукция ушла, себестоимость ее не изменилась)? |
|||
1
Fragster
гуру
18.07.16
✎
16:56
|
вместо запросов использовать дополнение периодов СКД?
|
|||
2
Nuobu
18.07.16
✎
16:58
|
Таблица периодов + Срез последних на дату из запроса.
|
|||
3
DrLekter
18.07.16
✎
20:18
|
(1) с СКД я до сих пор на Вы ) Очень редко возникали задачи, нерешаемые обычными запросами, вот и не вникал глубоко.
(2) это Срез последних вызывать столько раз, сколько периодов получится в выборке? Если так, проще и быстрее (как по трудозатратам, так и по быстродействию) все таки идти через ТЗ. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |