|
Как такой запрос сделать? |
☑ |
0
tciban
06.09.11
✎
13:39
|
Уважаемые коллеги! Опять вопрос у меня, поделитесь опытом как сделать такой запрос. Есть регистр. простой такой регистр накопления с измерением "Сделка" типа документ такой и ресурсом "долг" (покупателя).
Еще у сделки есть поле - "Дата завершения". Так вот мне нужно получить помесячно за год долги покупателя, но только по незакрытым на тот период сделкам. Т.е. если у сделки дата закрытия в августе, то долг по ней в июнь-июль-август попадает, а в сентябрь уже нет. Как такое нарисовать в запросе?
|
|
1
Axel2009
06.09.11
✎
13:41
|
ну и где начальный запрос?
|
|
2
dva1c
06.09.11
✎
13:41
|
конструктор в руки пробовал брать?
|
|
3
Midzgun
06.09.11
✎
13:42
|
Лень писать - большой запрос получится. Суть в том, что тебе сначала нужно получить таблицу дат периода. Для примера можешь посмотреть документ ТабельУчетаРабочегоВремени в УПП или КА или ЗУП, конкретно его заполнение. Потом соединяешь таблицу дат и навешиваешь условия.
|
|
4
tciban
06.09.11
✎
13:46
|
дык не знаю как писать. Не знаю как учесть такое условие в запросе. Базовый запрос вот такой видимо:
ВЫБРАТЬ
ВложенныйЗапрос.Период,
СУММА(ВложенныйЗапрос.Сумма) КАК Сумма
ИЗ
(ВЫБРАТЬ
БалансСделокОстаткиИОбороты.Период КАК Период,
БалансСделокОстаткиИОбороты.Сделка КАК Сделка,
ВЫБОР
КОГДА БалансСделокОстаткиИОбороты.ДолгПокупателяКонечныйОстаток > 0
ТОГДА БалансСделокОстаткиИОбороты.ДолгПокупателяКонечныйОстаток
ИНАЧЕ 0
КОНЕЦ КАК Сумма
ИЗ
РегистрНакопления.БалансСделок.ОстаткиИОбороты(&ДатаН, &ДатаК, Месяц, ДвиженияИГраницыПериода, (НЕ Сделка.Завершена)) КАК БалансСделокОстаткиИОбороты) КАК ВложенныйЗапрос
СГРУППИРОВАТЬ ПО
ВложенныйЗапрос.Период
Но на что заменить условие (НЕ Сделка.Завершена) - я не знаю
|
|
5
Midzgun
06.09.11
✎
13:50
|
Так ты не остаткиобороты делай, а соединяй по ТаблицаПериодов.Период < БалансСделок.Сделка.ДатаЗавершения ну а потом группируй или отбирай как душе угодно
|
|
6
Axel2009
06.09.11
✎
13:54
|
ну и где учет даты закрытия?
|
|
7
Axel2009
06.09.11
✎
13:54
|
выбор когда датазакрытия < период тогда сумма иначе 0 конец
|
|
8
tciban
07.09.11
✎
10:37
|
Если я все правильно понимаю, то правильно вот так:
ВЫБРАТЬ
ВложенныйЗапрос.Период,
СУММА(ВложенныйЗапрос.Сумма) КАК Сумма
ИЗ
(ВЫБРАТЬ
КОНЕЦПЕРИОДА(БалансСделокОстаткиИОбороты.Период, МЕСЯЦ) КАК Период,
БалансСделокОстаткиИОбороты.Сделка КАК Сделка,
ВЫБОР
КОГДА БалансСделокОстаткиИОбороты.ДолгПокупателяКонечныйОстаток > 0
ТОГДА БалансСделокОстаткиИОбороты.ДолгПокупателяКонечныйОстаток
ИНАЧЕ 0
КОНЕЦ КАК Сумма
ИЗ
РегистрНакопления.БалансСделок.ОстаткиИОбороты(&ДатаН, &ДатаК, Месяц, ДвиженияИГраницыПериода, ) КАК БалансСделокОстаткиИОбороты) КАК ВложенныйЗапрос
ГДЕ
ВложенныйЗапрос.Сделка.ДатаЗавершения > ВложенныйЗапрос.Период
СГРУППИРОВАТЬ ПО
ВложенныйЗапрос.Период
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший