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


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

Запрос по оборотам из нескольких регистров накопления.
Я
   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 или кнопку "Обновить" в браузере.
Рекламное место пустует