Имя: Пароль:
1C
1С v8
Нужна помощь с запросом - ОБЪЕДИНИТЬ
0 Пип Пибип
 
26.08.11
12:14
День добрый, господа.

Нужна помощь с запросом, голова уже не варит. Вот так выглядит запрос:


ВЫБРАТЬ
   Заказ.Ссылка КАК Заказ,
   Заказ.СуммаДокумента КАК СуммаДокументаЗаказ,
   Поставка.СуммаДокументаПоставка КАК СуммаДокументаПоставка,
   ПлатежноеПоручениеВходящее.СуммаПлатежа КАК СуммаПлатежаПлатежноеПоручениеВходящее,
   ОплатаОтПокупателяПлатежнойКартой.СуммаПлатежа КАК СуммаПлатежаОплатаОтПокупателяПлатежнойКартой,
   ПриходныйКассовыйОрдер.СуммаПлатежа КАК СуммаПлатежаПриходныйКассовыйОрдер
ИЗ
   Документ.ЗаказПокупателя КАК Заказ
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           СУММА(Поставка.СуммаДокумента) КАК СуммаДокументаПоставка,
           Поставка.ЗаказПокупателя КАК ЗаказПокупателяПоставка
       ИЗ
           Документ.Поставка КАК Поставка
       ГДЕ
           Поставка.Склад <> &Склад
           И Поставка.Организация <> &Организация
           И Поставка.Контрагент <> &Контрагент
           И Поставка.ПометкаУдаления = ЛОЖЬ
           И Поставка.Проведен
       
       СГРУППИРОВАТЬ ПО
           Поставка.ЗаказПокупателя) КАК Поставка
       ПО Заказ.Ссылка = Поставка.ЗаказПокупателяПоставка
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Сделка КАК Сделка,
           СУММА(ПлатежноеПоручениеВходящееРасшифровкаПлатежа.СуммаПлатежа) КАК СуммаПлатежа
       ИЗ
           Документ.ПлатежноеПоручениеВходящее.РасшифровкаПлатежа КАК ПлатежноеПоручениеВходящееРасшифровкаПлатежа
       ГДЕ
           ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Сделка <> НЕОПРЕДЕЛЕНО
           И ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Ссылка.Проведен
       
       СГРУППИРОВАТЬ ПО
           ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Сделка) КАК ПлатежноеПоручениеВходящее
       ПО Заказ.Ссылка = ПлатежноеПоручениеВходящее.Сделка
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           ОплатаОтПокупателяПлатежнойКартойРасшифровкаПлатежа.Сделка КАК Сделка,
           СУММА(ОплатаОтПокупателяПлатежнойКартойРасшифровкаПлатежа.СуммаПлатежа) КАК СуммаПлатежа
       ИЗ
           Документ.ОплатаОтПокупателяПлатежнойКартой.РасшифровкаПлатежа КАК ОплатаОтПокупателяПлатежнойКартойРасшифровкаПлатежа
       ГДЕ
           ОплатаОтПокупателяПлатежнойКартойРасшифровкаПлатежа.Сделка <> НЕОПРЕДЕЛЕНО
           И ОплатаОтПокупателяПлатежнойКартойРасшифровкаПлатежа.Ссылка.Проведен
       
       СГРУППИРОВАТЬ ПО
           ОплатаОтПокупателяПлатежнойКартойРасшифровкаПлатежа.Сделка) КАК ОплатаОтПокупателяПлатежнойКартой
       ПО Заказ.Ссылка = ОплатаОтПокупателяПлатежнойКартой.Сделка
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
           ПриходныйКассовыйОрдерРасшифровкаПлатежа.Сделка КАК Сделка,
           СУММА(ПриходныйКассовыйОрдерРасшифровкаПлатежа.СуммаПлатежа) КАК СуммаПлатежа
       ИЗ
           Документ.ПриходныйКассовыйОрдер.РасшифровкаПлатежа КАК ПриходныйКассовыйОрдерРасшифровкаПлатежа
       ГДЕ
           ПриходныйКассовыйОрдерРасшифровкаПлатежа.Сделка <> НЕОПРЕДЕЛЕНО
           И ПриходныйКассовыйОрдерРасшифровкаПлатежа.Ссылка.Проведен
       
       СГРУППИРОВАТЬ ПО
           ПриходныйКассовыйОрдерРасшифровкаПлатежа.Сделка) КАК ПриходныйКассовыйОрдер
       ПО Заказ.Ссылка = ПриходныйКассовыйОрдер.Сделка
ГДЕ
   Заказ.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
   И Заказ.ПометкаУдаления = ЛОЖЬ
   И Заказ.Проведен
   И Заказ.ДатаОтправкиЗакупщикам <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)

СГРУППИРОВАТЬ ПО
   Заказ.Ссылка,
   Заказ.СуммаДокумента,
   ПлатежноеПоручениеВходящее.СуммаПлатежа,
   Поставка.СуммаДокументаПоставка,
   ОплатаОтПокупателяПлатежнойКартой.СуммаПлатежа,
   ПриходныйКассовыйОрдер.СуммаПлатежа

УПОРЯДОЧИТЬ ПО
   Заказ.Дата


Как мне поля СуммаПлатежаПлатежноеПоручениеВходящее, СуммаПлатежаОплатаОтПокупателяПлатежнойКартой, СуммаПлатежаПриходныйКассовыйОрдер объеденить в одно (значения просуммировав)? Предполагаю, с помощью конструкции ОБЪЕДИНИТЬ. Но дальше, увы, туплю.
1 Wobland
 
26.08.11
12:15
чо? объединить?
ВЫБРАТЬ СуммаПлатежаПлатежноеПоручениеВходящее+СуммаПлатежаОплатаОтПокупателяПлатежнойКартой+СуммаПлатежаПриходныйКассовыйОрдер

//запрос не смотрел
2 Пип Пибип
 
26.08.11
12:18
(1) Вот так:


ВЫБРАТЬ
   Заказ.Ссылка КАК Заказ,
   Заказ.СуммаДокумента КАК СуммаДокументаЗаказ,
   Поставка.СуммаДокументаПоставка КАК СуммаДокументаПоставка,
   ПлатежноеПоручениеВходящее.СуммаПлатежа КАК СуммаПлатежаПлатежноеПоручениеВходящее,
   ОплатаОтПокупателяПлатежнойКартой.СуммаПлатежа КАК СуммаПлатежаОплатаОтПокупателяПлатежнойКартой,
   ПриходныйКассовыйОрдер.СуммаПлатежа КАК СуммаПлатежаПриходныйКассовыйОрдер,
   ОплатаОтПокупателяПлатежнойКартой.СуммаПлатежа + ПриходныйКассовыйОрдер.СуммаПлатежа + ПриходныйКассовыйОрдер.СуммаПлатежа КАК Сумма
ИЗ
...


?
Не, нихт арбайтен
3 Wobland
 
26.08.11
12:19
(2) ви ес арбайтен нихт?
4 Wobland
 
26.08.11
12:20
+(3) именно это я имел в виду. что не так-то?
5 viktor_vv
 
26.08.11
12:20
ISNULL(ОплатаОтПокупателяПлатежнойКартой.СуммаПлатежа,0) ну и для остальных тоже.
6 Пип Пибип
 
26.08.11
12:29
Был невнимателен, каюсь (накануне ночью с вискарем как снег на голову приехала подруга детс... тьфу, это же не бложек), в (2) все поперепутал.

Правильный вариант вот такой, все работает:


ВЫБРАТЬ
   Заказ.Ссылка КАК Заказ,
   Заказ.СуммаДокумента КАК СуммаДокументаЗаказ,
   Поставка.СуммаДокументаПоставка КАК СуммаДокументаПоставка,
   ПлатежноеПоручениеВходящее.СуммаПлатежа КАК СуммаПлатежаПлатежноеПоручениеВходящее,
   ОплатаОтПокупателяПлатежнойКартой.СуммаПлатежа КАК СуммаПлатежаОплатаОтПокупателяПлатежнойКартой,
   ПриходныйКассовыйОрдер.СуммаПлатежа КАК СуммаПлатежаПриходныйКассовыйОрдер,
   ISNULL(ПлатежноеПоручениеВходящее.СуммаПлатежа, 0) + ISNULL(ОплатаОтПокупателяПлатежнойКартой.СуммаПлатежа, 0) + ISNULL(ПриходныйКассовыйОрдер.СуммаПлатежа, 0) КАК СуммаОплат
ИЗ
...


Спасибо, господа!
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн