Имя: Пароль:
1C
 
Не суммируются в запросе ресурсы регистра накоплений и сведений
0 shavkat
 
11.10.18
14:52
Добрый день

Есть доработанный УТ 10.3
Есть независимый регистр сведений "Удаленные товары", периодичность в пределах секунды.

делаю запрос
ВЫБРАТЬ
    ПродажиОбороты.Номенклатура,
    ЕСТЬNULL(ПродажиОбороты.КоличествоОборот, 0) КАК КоличествоПродаж
ПОМЕСТИТЬ ВТ_Продажи
ИЗ
    РегистрНакопления.Продажи.Обороты(&Дата1, &Дата2, , ) КАК ПродажиОбороты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    УдаленныеТовары.Номенклатура,
    ЕСТЬNULL(УдаленныеТовары.Количество, 0) КАК КоличествоУдаленных
ПОМЕСТИТЬ ВТ_Удаленные
ИЗ
    РегистрСведений.УдаленныеТовары КАК УдаленныеТовары
ГДЕ
    УдаленныеТовары.Период МЕЖДУ &Дата1 И &Дата2
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_Продажи.Номенклатура,
    ВТ_Продажи.КоличествоПродаж,
    ВТ_Удаленные.КоличествоУдаленных,
    ВТ_Продажи.КоличествоПродаж + ВТ_Удаленные.КоличествоУдаленных КАК Всего
ИЗ
    ВТ_Продажи КАК ВТ_Продажи
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Удаленные КАК ВТ_Удаленные
        ПО ВТ_Продажи.Номенклатура = ВТ_Удаленные.Номенклатура

В колонке "КоличествоПродаж" все правильно выводится
В колонке "КоличествоУдаленных" все правильно выводится
В колонке "Всего" заполнена только у тех строк в котором есть записи по регистру сведений.

Может я что-то не предусмотрел?

Заранее благодарю
1 azernot
 
11.10.18
14:54
ВТ_Продажи.КоличествоПродаж + ЕСТЬNULL(ВТ_Удаленные.КоличествоУдаленных,0)

в остальных местах ЕСТЬNULL не нужен.
2 Cool_Profi
 
11.10.18
14:55
ЕСТЬNULL забыл
3 shavkat
 
11.10.18
15:01
(1) заработало, спасибо!

но логику не понял
4 Йохохо
 
11.10.18
15:02
(3) у тебя левое соединение дает нул, кажется весь запрос делает не то что ты хотел
5 hhhh
 
11.10.18
16:14
(3) у тебя

ВТ_Продажи.КоличествоПродаж + ВТ_Удаленные.КоличествоУдаленных КАК Всего

ВТ_Удаленные.КоличествоУдаленных = null

поэтому

ВТ_Продажи.КоличествоПродаж + ВТ_Удаленные.КоличествоУдаленных  = null

поэтому

"В колонке "Всего" заполнена только у тех строк в котором есть записи по регистру сведений"
6 Eiffil123
 
11.10.18
16:23
(3) при левом соединении все суммовые поля справа нужно оборачивать в естьнулл, чтобы их складывать, вычитать, проверять на равенство и т.д.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn