Вход | Регистрация


Запрос по оборотам из нескольких регистров накопления.

Запрос по оборотам из нескольких регистров накопления.
Я
   Lostcost333
 
05.08.18 - 14:37
Добрый день, такая ситуация: Необходимо в запросе получить Обороты за день по 4 регистрам. Делаю левое соединение по "Павилион", делаю проверку на NULL, а в итоге результат запроса все равно пустой... Подскажите пожалуйста, в чем дело...
 
 
   Lostcost333
 
1 - 05.08.18 - 14:41
Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    ВЫБОР
        |        КОГДА КассаОбороты.СуммаОборот ЕСТЬ NULL
        |            ТОГДА 0
        |        ИНАЧЕ КассаОбороты.СуммаОборот
        |    КОНЕЦ КАК Касса,
        |    ВЫБОР
        |        КОГДА ПокупкиОбороты.СуммаОборот ЕСТЬ NULL
        |            ТОГДА 0
        |        ИНАЧЕ ПокупкиОбороты.СуммаОборот
        |    КОНЕЦ КАК Покупки,
        |    ВЫБОР
        |        КОГДА ПродажиОбороты.СуммаОборот ЕСТЬ NULL
        |            ТОГДА 0
        |        ИНАЧЕ ПродажиОбороты.СуммаОборот
        |    КОНЕЦ КАК Продажи,
        |    ВЫБОР
        |        КОГДА УчетОбменаТоваровОбороты.СуммаОборот ЕСТЬ NULL
        |            ТОГДА 0
        |        ИНАЧЕ УчетОбменаТоваровОбороты.СуммаОборот
        |    КОНЕЦ КАК ОбменВозврат
        |ИЗ
        |    РегистрНакопления.Касса.Обороты(&ПериодНачало, &ПериодОкончание, , ) КАК КассаОбороты
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.УчетОбменаТоваров.Обороты(&ПериодНачало, &ПериодОкончание, , ) КАК УчетОбменаТоваровОбороты
        |        ПО КассаОбороты.Павилион = УчетОбменаТоваровОбороты.Павилион
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&ПериодНачало, &ПериодОкончание, , ) КАК ПродажиОбороты
        |        ПО КассаОбороты.Павилион = ПродажиОбороты.Павилион
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Покупки.Обороты(&ПериодНачало, &ПериодОкончание, , ) КАК ПокупкиОбороты
        |        ПО КассаОбороты.Павилион = ПокупкиОбороты.Павилион
        |ГДЕ
        |    КассаОбороты.Павилион = &Павилион";    
    Запрос.УстановитьПараметр("Павилион", Объект.Павилион);
    Запрос.УстановитьПараметр("ПериодНачало", НачалоДня(Объект.Дата));
    Запрос.УстановитьПараметр("ПериодОкончание", КонецДня(Объект.Дата));
   mmmarat
 
2 - 05.08.18 - 14:45
(0) Четыре запроса через ОБЪЕДИНИТЬ ВСЕ
   sechs
 
3 - 05.08.18 - 14:54
Что такое "Павилион"? Какое-то животное?
   Lostcost333
 
4 - 05.08.18 - 15:04
Понятия не имею, так справочник назвали)))
   craxx
 
5 - 05.08.18 - 15:15
Вообще не понял зачем соединения. Четыре запроса с объединением ОБЪЕДИНИТЬ ВСЕ
   Lostcost333
 
6 - 05.08.18 - 15:26
Я прошу прощения за свою глупость, но правильно я понял, что при ОБЪЕДИНИТЬ ВСЕ, Весь результат соберется в 1 колонку, но (в моем случае) 4 строки, и потом нужно просто перебирать в цикле?
   palsergeich
 
7 - 05.08.18 - 15:28
Нет, можно сгрупиировать и получить столько колонок (в вашем случае - 5) сколько надо. См книгу Хрусталевой Язык запросов "1С:Предприятия 8" 
Это основа основ.
   RomanYS
 
8 - 05.08.18 - 15:29
(6)
Выбрать
поле как поле1,
0 как поле2
поместить ВТ
ИЗ Тз1
объединить все
Выбрать 
0 как поле1,
поле как поле2
ИЗ Тз2;
ВЫбрать
сумма(поле1),
Сумма(поле2)
из вт
   palsergeich
 
9 - 05.08.18 - 15:32
(8) А следующий шаг - сгруппировать по Максимум не ссылочные поля. Что бы слопнуть строки в 1.
   Lostcost333
 
10 - 05.08.18 - 15:38
Огромное спасибо! (7) Обязательно прочитаю, еще раз извините за глупые вопросы.
 
 Рекламное место пустует

Список тем форума
Рекламное место пустует  Рекламное место пустует
Основная теорема систематики: Новые системы плодят новые проблемы.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует