|
Не распределяет доход если отсутствует расход | ☑ | ||
---|---|---|---|---|
0
1ctube
25.01.18
✎
09:08
|
Привет. Такая ситуация: есть не типовой отчет, он выводит доход, если например в текущем месяце есть расход, то он распределяет доход по фондам. Как выяснилось если нет в тек.месяце расход то он его не распределяет. После исследования выявил проблемный участок запроса:
|ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ""1912"", | ""Фонды"", | СметаЗатратФонды.Фонд, | NULL, | NULL, | ИтоговаяТаблицаДоходов.Период, ИтоговаяТаблицаРасходов.Период), | 0, | 0, | ВЫРАЗИТЬ(ВЫБОР | КОГДА ОбщаяРаспределениеЧистогоДохода.ОбщаяДоля = 0 | ТОГДА 0 | ИНАЧЕ СметаЗатратФонды.Доля * (ЕСТЬNULL(ИтоговаяТаблицаДоходов.СуммаДоходов, 0) - ЕСТЬNULL(ИтоговаяТаблицаРасходов.СуммаРасходов, 0)) / ОбщаяРаспределениеЧистогоДохода.ОбщаяДоля | КОНЕЦ КАК ЧИСЛО(15, 2)), | 0, | 0, | 0 |ИЗ | Документ.СметаЗатрат.РаспределениеЧистогоДохода КАК СметаЗатратФонды | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | СУММА(ОбщаяРаспределениеЧистогоДохода.Доля) КАК ОбщаяДоля | ИЗ | Документ.СметаЗатрат.РаспределениеЧистогоДохода КАК ОбщаяРаспределениеЧистогоДохода | ГДЕ | ОбщаяРаспределениеЧистогоДохода.Ссылка = &СметаЗатрат) КАК ОбщаяРаспределениеЧистогоДохода | ПО (ИСТИНА) | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ТаблицаРасходов.Период, | СУММА(ЕСТЬNULL(ТаблицаРасходов.СуммаФакт,0)) КАК СуммаРасходов | ИЗ | ТаблицаРасходов КАК ТаблицаРасходов | СГРУППИРОВАТЬ ПО | ТаблицаРасходов.Период) КАК ИтоговаяТаблицаРасходов | ПО (ИСТИНА) | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ВЫБОР | КОГДА НАЧАЛОПЕРИОДА(БюджетированиеДоходыОбороты.Период, МЕСЯЦ) >= &ДатаНачала | И НАЧАЛОПЕРИОДА(БюджетированиеДоходыОбороты.Период, МЕСЯЦ) <= &ДатаОкончания | ТОГДА НАЧАЛОПЕРИОДА(БюджетированиеДоходыОбороты.Период, МЕСЯЦ) | ИНАЧЕ &ДатаПрочие | КОНЕЦ КАК Период, | СУММА(ЕСТЬNULL(БюджетированиеДоходыОбороты.СуммаОборот,0)) КАК СуммаДоходов | ИЗ | РегистрНакопления.БюджетированиеДоходы.Обороты( | , | , | Регистратор, | ВидДвиженияДоходов = ЗНАЧЕНИЕ(Перечисление.SP_ВидыДвиженияДанныхПоБюджетированию.Факт) | И СметаЗатрат = &СметаЗатрат) КАК БюджетированиеДоходыОбороты | ГДЕ | НЕ БюджетированиеДоходыОбороты.Регистратор ССЫЛКА Документ.КорректировкаРасходов | | СГРУППИРОВАТЬ ПО | ВЫБОР | КОГДА НАЧАЛОПЕРИОДА(БюджетированиеДоходыОбороты.Период, МЕСЯЦ) >= &ДатаНачала | И НАЧАЛОПЕРИОДА(БюджетированиеДоходыОбороты.Период, МЕСЯЦ) <= &ДатаОкончания | ТОГДА НАЧАЛОПЕРИОДА(БюджетированиеДоходыОбороты.Период, МЕСЯЦ) | ИНАЧЕ &ДатаПрочие | КОНЕЦ) КАК ИтоговаяТаблицаДоходов | ПО ИтоговаяТаблицаДоходов.Период = ИтоговаяТаблицаДоходов.Период |ГДЕ | СметаЗатратФонды.Ссылка = &СметаЗатрат | |ОБЪЕДИНИТЬ ВСЕ Тут проблема в левом соединении как я понял, если расхода нет, то и распределения нет. Как лучше переписать этот участок запроса? |
|||
1
1ctube
25.01.18
✎
09:10
|
ПС. в конце азпроса прописано так:
| ПО ИтоговаяТаблицаРасходов.Период = ИтоговаяТаблицаДоходов.Период |ГДЕ | СметаЗатратФонды.Ссылка = &СметаЗатрат |
|||
2
1ctube
25.01.18
✎
10:58
|
Сейчас создал док который делает движения по расходу, если хоть расход будет на 1, то распределяется, если с нулевой суммой то нет
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |