|   |   | 
| 
 | Два левых соединения в простом запросе | ☑ | ||
|---|---|---|---|---|
| 0
    
        DJ Anthon 17.11.22✎ 11:02 | 
        ВЫБРАТЬ
 СУММА(ОтчетОРозничныхПродажахТовары.Сумма) КАК Товары_Сумма ИЗ Документ.ОтчетОРозничныхПродажах КАК ОтчетОРозничныхПродажах ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтчетОРозничныхПродажах.Товары КАК ОтчетОРозничныхПродажахТовары ПО ОтчетОРозничныхПродажахТовары.Ссылка = ОтчетОРозничныхПродажах.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтчетОРозничныхПродажах.ОплатаПлатежнымиКартами КАК ОтчетОРозничныхПродажахОплатаПлатежнымиКартами ПО ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка = ОтчетОРозничныхПродажахТовары.Ссылка СГРУППИРОВАТЬ ПО ОтчетОРозничныхПродажах.Ссылка Если закомментить второе левое соединение, то сумма выдается верная. Если раскомментировать, то удваивается (потому что в документе две строки в табличной части ОплатаПлатежнымиКартами). Надо итоги по двум табличным частям. Как правильно сделать? Через временные таблицы? Или здесь можно что-то исправить? | |||
| 1
    
        RomanYS 17.11.22✎ 11:06 | 
        (0) Я бы объединением делал, если это конечная цель (Надо итоги по двум табличным частям). А если итоги только малая часть возможно проще подготовить ВТ с итогами     | |||
| 2
    
        DJ Anthon 17.11.22✎ 11:14 | 
        конечная цель - список документов с итогами по всем табличным частям     | |||
| 3
    
        FIXXXL 17.11.22✎ 11:19 | 
        (1) +1     | |||
| 5
    
        mistеr 17.11.22✎ 11:24 | 
        (0) Замени соединение на объединение     | |||
| 6
    
        DJ Anthon 17.11.22✎ 11:31 | 
        (1) (3) (5) как? через ОБЪЕДИНИТЬ ВСЕ, что ли? так там разные поля     | |||
| 7
    
        DJ Anthon 17.11.22✎ 11:37 | 
        через временные таблицы получилось, но это слишком громоздко
 ВЫБРАТЬ ОтчетОРозничныхПродажах.Ссылка КАК Ссылка ПОМЕСТИТЬ ОтчетОРозничныхПродажах ИЗ Документ.ОтчетОРозничныхПродажах КАК ОтчетОРозничныхПродажах ГДЕ ОтчетОРозничныхПродажах.Проведен И ОтчетОРозничныхПродажах.Дата <= &Дата1 СГРУППИРОВАТЬ ПО ОтчетОРозничныхПродажах.Ссылка; ВЫБРАТЬ ОтчетОРозничныхПродажахТовары.Ссылка, СУММА(ОтчетОРозничныхПродажахТовары.Сумма) КАК Товары_Сумма ПОМЕСТИТЬ ОтчетОРозничныхПродажахТовары ИЗ Документ.ОтчетОРозничныхПродажах.Товары КАК ОтчетОРозничныхПродажахТовары ГДЕ ОтчетОРозничныхПродажахТовары.Ссылка.Проведен И ОтчетОРозничныхПродажахТовары.Ссылка.Дата <= &Дата1 СГРУППИРОВАТЬ ПО ОтчетОРозничныхПродажахТовары.Ссылка; ВЫБРАТЬ ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка КАК Ссылка, СУММА(ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Сумма) КАК ОплатаПлатежнымиКартами_Сумма ПОМЕСТИТЬ ОтчетОРозничныхПродажахОплатаПлатежнымиКартами ИЗ Документ.ОтчетОРозничныхПродажах.ОплатаПлатежнымиКартами КАК ОтчетОРозничныхПродажахОплатаПлатежнымиКартами ГДЕ ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка.Проведен И ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка.Дата <= &Дата1 СГРУППИРОВАТЬ ПО ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка; ВЫБРАТЬ * ИЗ ОтчетОРозничныхПродажах ЛЕВОЕ СОЕДИНЕНИЕ ОтчетОРозничныхПродажахТовары ПО ОтчетОРозничныхПродажахТовары.Ссылка = ОтчетОРозничныхПродажах.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ ОтчетОРозничныхПродажахОплатаПлатежнымиКартами ПО ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка = ОтчетОРозничныхПродажах.Ссылка | |||
| 8
    
        RomanYS 17.11.22✎ 11:44 | 
        (6) 
 выбрать ТЧ1.Ссылка, Сумма(ТЧ1.Сумма) как Итог1 0 как Итог2 ... ОБЪЕДИНИТЬ ВСЕ выбрать ТЧ2, 0 как Итог1, Сумма(ТЧ2.Сумма) как Итог2, ... ... | |||
| 9
    
        DJ Anthon 17.11.22✎ 12:01 | 
        че-то мне это совсем не нравится, запрос я составляю программно. выбирается произвольное число реквизитов из шапки документа, из табличных частей (по которым могут быть итоги) по произвольным видам документов. получается, выборку реквизитов мне надо будет дублировать в каждом подзапросе, чтобы поля совпадали. то есть число реквизитов умножится на число табличных частей. плюс пустые поля от чужих табличных частей. а я хотел, чтобы число строк запроса не умножалось, а складывалось. то есть если для одного документа реквизитов 20, табличных частей 5 по два итога в каждом, я бы хотел примерно 20+5*2=30 строк запроса плюс отборы и группировки, а не (20+5*2)*5=150 строк. ладно, сделаю через временные таблицы, как в (7).     | |||
| 10
    
        Said_We 17.11.22✎ 12:09 | 
        (9) У тебя задача дословно "Надо итоги по двум табличным частям".
 Если перефразировать, то необходима сумму по одной табличной части прибавить к сумме другой табличной части и т.д. Если ещё перефразировать, то одну табличную часть сложить с другой табличной частью.... Если ещё перефразировать, то одно множество сложить с другим множеством. Сложение множеств это объединение, а не соединение. А соединение это умножение множеств. Умножение множеств это задачи вида: найти или сопоставить для каждого элемента первого множества элементы из второго множества; сопоставить каждому элементу первого множества элементы и из второго множества и каждому элементу из второго множества сопоставить элементы из первого множества. и т.д. | |||
| 11
    
        tesei 17.11.22✎ 12:13 | 
        (7) В приведённом примере нет ВТ     | |||
| 12
    
        Said_We 17.11.22✎ 12:15 | 
        (11) Есть, но они не нужны.
 Примерный алгоритм в (8). Только ещё надо в подзапрос завернуть, сгруппировать и сложить. Но информации в (8) более чем достаточно. | |||
| 13
    
        Mihasya 17.11.22✎ 12:35 | 
        (0) А есть так? (сам не проверял)
 "ВЫБРАТЬ | ЕСТЬNULL(ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка, ОтчетОРозничныхПродажахТовары.Ссылка) КАК Ссылка, | СУММА(ЕСТЬNULL(ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Сумма, 0)) КАК СуммаОплаты, | СУММА(ЕСТЬNULL(ОтчетОРозничныхПродажахТовары.Сумма, 0)) КАК СуммаТоваров |ИЗ | Документ.ОтчетОРозничныхПродажах.Товары КАК ОтчетОРозничныхПродажахТовары | ПОЛНОЕ СОЕДИНЕНИЕ Документ.ОтчетОРозничныхПродажах.ОплатаПлатежнымиКартами КАК ОтчетОРозничныхПродажахОплатаПлатежнымиКартами | ПО ОтчетОРозничныхПродажахТовары.Ссылка = ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка | И ОтчетОРозничныхПродажахТовары.НомерСтроки = ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.НомерСтроки |ГДЕ | ЕСТЬNULL(ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка, ОтчетОРозничныхПродажахТовары.Ссылка) = &Ссылка | |СГРУППИРОВАТЬ ПО | ЕСТЬNULL(ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка, ОтчетОРозничныхПродажахТовары.Ссылка)" | |||
| 14
    
        Kassern 17.11.22✎ 12:36 | 
        (0) " Если раскомментировать, то удваивается" -> значит для 1 строчки в левой таблице есть 2 подходящие по связи строчки в правой     | |||
| 15
    
        Mihasya 17.11.22✎ 12:43 | 
        (14) это значит что в в таблице "ОплатаПлатежнымиКартами " две строки, было бы три, утраивалось бы... и т.д. ))     | |||
| 16
    
        Kassern 17.11.22✎ 12:46 | 
        (15) Вот так нужно торговать! Легким движением руки утроили выручку за день)     | |||
| 17
    
        DJ Anthon 17.11.22✎ 13:03 | 
        (10) да не понимаю я смысла все равно. табличная часть - это множество. но мне нужна только одна цифра из множества - итог. итог привязывается к ссылке. вот этот итог я и хочу приклеить к основной таблице с реквизитами по ссылке     | |||
| 18
    
        DJ Anthon 17.11.22✎ 13:07 | 
        (15) да, я понял, как это происходит, но не понимаю, как исправить, не переделывая весь запрос. наверное, надо сделать вложенный запрос, чтобы сначала одна табличная часть свои итоги присоединила, затем вторая.     | |||
| 19
    
        DJ Anthon 17.11.22✎ 13:09 | 
        (13) кажется, номер строки там совсем не нужен     | |||
| 20
    
        DJ Anthon 17.11.22✎ 13:10 | 
        (11) а разве ПОМЕСТИТЬ, это не ВТ? зато запрос работает, как надо. Правда, есть лишние Ссылка1, Ссылка2... но они не мешают     | |||
| 21
    
        Kassern 17.11.22✎ 13:34 | 
        (18) "но не понимаю, как исправить" -> сделать для 1 строчки левой таблицы одну строчку в правой. Это можно добиться путем дополнительных связей, либо предварительной группировки таблицы.     | |||
| 22
    
        DJ Anthon 17.11.22✎ 13:41 | 
        (21) вот, я и хочу понять, как сделать предварительную группировку. судя по всему, это либо вложенный запрос (что не рекомендуется), либо временная таблица. я надеялся, что это можно как-то проще сделать.
 спасибо всем | |||
| 23
    
        Said_We 17.11.22✎ 14:09 | 
        (22) Проще и правильнее ответ в (8).     | |||
| 24
    
        1Сергей 17.11.22✎ 14:17 | 
        Объединитьфобия лечится?     | |||
| 25
    
        Said_We 17.11.22✎ 14:17 | 
        (22) "вот, я и хочу понять" - неа не хочешь.     | |||
| 26
    
        Mihasya 17.11.22✎ 14:25 | 
        (19) Перекрестись )))     | |||
| 27
    
        DJ Anthon 17.11.22✎ 14:42 | 
        (24) у меня нет ее, я постоянно ее использую. просто не вижу тут смысла. если будет время, вечером сделаю вариант с объединить и сравню, что будет лучше. может, просто вы меня не так поняли..     | |||
| 28
    
        RomanYS 17.11.22✎ 14:46 | 
        (27) конечно не так. "Итоги по нескольким ТЧ" это же такая многосмысленная фраза....)))     | |||
| 29
    
        DJ Anthon 17.11.22✎ 15:49 | 
        Всё, реализовал. Тем не менее у меня в запросе используется ОБЪЕДИНИТЬ ВСЕ, но для видов документов, а не для табличных частей.
 Поэтому доказать вам будет проблематично, ведь я же все-таки использовал объединение ) Думаю, что если я буду еще объединять табличные части, то запрос станет намного больше, а его отладка и читабельность ухудшатся. Вот пример сгенерированного запроса, 1 вид документа, 2 табличные части по одному итогу в каждой //ОтчетОРозничныхПродажах ВЫБРАТЬ ОтчетОРозничныхПродажах.Проведен КАК Проведен, ОтчетОРозничныхПродажах.ПометкаУдаления КАК ПометкаУдаления, ОтчетОРозничныхПродажах.Дата КАК Дата, ОтчетОРозничныхПродажах.Дата КАК Дата_, ОтчетОРозничныхПродажах.Номер КАК Номер, "Отчет о розничных продажах" КАК __, ОтчетОРозничныхПродажах.СуммаДокумента КАК СуммаДокумента, ОтчетОРозничныхПродажах.СуммаВозвратов КАК СуммаВозвратов, ОтчетОРозничныхПродажах.Магазин КАК Магазин, ОтчетОРозничныхПродажах.СуммаОплатыНаличных КАК СуммаОплатыНаличных, "" КАК _, ОтчетОРозничныхПродажах.Ссылка КАК Ссылка ПОМЕСТИТЬ ОтчетОРозничныхПродажах ИЗ Документ.ОтчетОРозничныхПродажах КАК ОтчетОРозничныхПродажах ГДЕ ОтчетОРозничныхПродажах.Ссылка.Проведен И ОтчетОРозничныхПродажах.Ссылка.Дата >= &Дата1 СГРУППИРОВАТЬ ПО ОтчетОРозничныхПродажах.Ссылка; ВЫБРАТЬ ЕСТЬNULL(СУММА(ОтчетОРозничныхПродажахТовары.Сумма), 0) КАК Товары_Сумма, ОтчетОРозничныхПродажахТовары.Ссылка КАК Ссылка ПОМЕСТИТЬ ОтчетОРозничныхПродажахТовары ИЗ Документ.ОтчетОРозничныхПродажах.Товары КАК ОтчетОРозничныхПродажахТовары ГДЕ ОтчетОРозничныхПродажахТовары.Ссылка.Проведен И ОтчетОРозничныхПродажахТовары.Ссылка.Дата >= &Дата1 СГРУППИРОВАТЬ ПО ОтчетОРозничныхПродажахТовары.Ссылка; ВЫБРАТЬ ЕСТЬNULL(СУММА(ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Сумма), 0) КАК ОплатаПлатежнымиКартами_Сумма, ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка КАК Ссылка ПОМЕСТИТЬ ОтчетОРозничныхПродажахОплатаПлатежнымиКартами ИЗ Документ.ОтчетОРозничныхПродажах.ОплатаПлатежнымиКартами КАК ОтчетОРозничныхПродажахОплатаПлатежнымиКартами ГДЕ ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка.Проведен И ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка.Дата >= &Дата1 СГРУППИРОВАТЬ ПО ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка; //РеализацияТоваров ВЫБРАТЬ РеализацияТоваров.Проведен КАК Проведен, РеализацияТоваров.ПометкаУдаления КАК ПометкаУдаления, РеализацияТоваров.Дата КАК Дата, РеализацияТоваров.Дата КАК Дата_, РеализацияТоваров.Номер КАК Номер, "Реализация товаров" КАК __, РеализацияТоваров.СуммаДокумента КАК СуммаДокумента, "" КАК СуммаВозвратов, РеализацияТоваров.Магазин КАК Магазин, "" КАК СуммаОплатыНаличных, "" КАК _, РеализацияТоваров.Ссылка КАК Ссылка ПОМЕСТИТЬ РеализацияТоваров ИЗ Документ.РеализацияТоваров КАК РеализацияТоваров ГДЕ РеализацияТоваров.Ссылка.Проведен И РеализацияТоваров.Ссылка.Дата >= &Дата1 СГРУППИРОВАТЬ ПО РеализацияТоваров.Ссылка; ВЫБРАТЬ ЕСТЬNULL(СУММА(РеализацияТоваровТовары.Сумма), 0) КАК Товары_Сумма, РеализацияТоваровТовары.Ссылка КАК Ссылка ПОМЕСТИТЬ РеализацияТоваровТовары ИЗ Документ.РеализацияТоваров.Товары КАК РеализацияТоваровТовары ГДЕ РеализацияТоваровТовары.Ссылка.Проведен И РеализацияТоваровТовары.Ссылка.Дата >= &Дата1 СГРУППИРОВАТЬ ПО РеализацияТоваровТовары.Ссылка; ВЫБРАТЬ 0 КАК ОплатаПлатежнымиКартами_Сумма, РеализацияТоваровОплатаПлатежнымиКартами.Ссылка КАК Ссылка ПОМЕСТИТЬ РеализацияТоваровОплатаПлатежнымиКартами ИЗ Документ.РеализацияТоваров КАК РеализацияТоваровОплатаПлатежнымиКартами ГДЕ РеализацияТоваровОплатаПлатежнымиКартами.Ссылка.Проведен И РеализацияТоваровОплатаПлатежнымиКартами.Ссылка.Дата >= &Дата1 СГРУППИРОВАТЬ ПО РеализацияТоваровОплатаПлатежнымиКартами.Ссылка; ВЫБРАТЬ * ИЗ ОтчетОРозничныхПродажах ЛЕВОЕ СОЕДИНЕНИЕ ОтчетОРозничныхПродажахТовары ПО ОтчетОРозничныхПродажахТовары.Ссылка = ОтчетОРозничныхПродажах.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ ОтчетОРозничныхПродажахОплатаПлатежнымиКартами ПО ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка = ОтчетОРозничныхПродажах.Ссылка ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ * ИЗ РеализацияТоваров ЛЕВОЕ СОЕДИНЕНИЕ РеализацияТоваровТовары ПО РеализацияТоваровТовары.Ссылка = РеализацияТоваров.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ РеализацияТоваровОплатаПлатежнымиКартами ПО РеализацияТоваровОплатаПлатежнымиКартами.Ссылка = РеализацияТоваров.Ссылка УПОРЯДОЧИТЬ ПО Дата, Номер итого 100 строк вот пример запроса, 2 документа, 4 табличные части по 2 итога в каждой //ОтчетОРозничныхПродажах ВЫБРАТЬ ОтчетОРозничныхПродажах.Проведен КАК Проведен, ОтчетОРозничныхПродажах.ПометкаУдаления КАК ПометкаУдаления, ОтчетОРозничныхПродажах.Дата КАК Дата, ОтчетОРозничныхПродажах.Дата КАК Дата_, ОтчетОРозничныхПродажах.Номер КАК Номер, "Отчет о розничных продажах" КАК __, ОтчетОРозничныхПродажах.СуммаДокумента КАК СуммаДокумента, ОтчетОРозничныхПродажах.СуммаВозвратов КАК СуммаВозвратов, ОтчетОРозничныхПродажах.Магазин КАК Магазин, ОтчетОРозничныхПродажах.СуммаОплатыНаличных КАК СуммаОплатыНаличных, "" КАК _, ОтчетОРозничныхПродажах.Ссылка КАК Ссылка ПОМЕСТИТЬ ОтчетОРозничныхПродажах ИЗ Документ.ОтчетОРозничныхПродажах КАК ОтчетОРозничныхПродажах ГДЕ ОтчетОРозничныхПродажах.Ссылка.Проведен И ОтчетОРозничныхПродажах.Ссылка.Дата >= &Дата1 СГРУППИРОВАТЬ ПО ОтчетОРозничныхПродажах.Ссылка; ВЫБРАТЬ ЕСТЬNULL(СУММА(ОтчетОРозничныхПродажахТовары.Сумма), 0) КАК Товары_Сумма, ОтчетОРозничныхПродажахТовары.Ссылка КАК Ссылка ПОМЕСТИТЬ ОтчетОРозничныхПродажахТовары ИЗ Документ.ОтчетОРозничныхПродажах.Товары КАК ОтчетОРозничныхПродажахТовары ГДЕ ОтчетОРозничныхПродажахТовары.Ссылка.Проведен И ОтчетОРозничныхПродажахТовары.Ссылка.Дата >= &Дата1 СГРУППИРОВАТЬ ПО ОтчетОРозничныхПродажахТовары.Ссылка; ВЫБРАТЬ ЕСТЬNULL(СУММА(ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Сумма), 0) КАК ОплатаПлатежнымиКартами_Сумма, ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка КАК Ссылка ПОМЕСТИТЬ ОтчетОРозничныхПродажахОплатаПлатежнымиКартами ИЗ Документ.ОтчетОРозничныхПродажах.ОплатаПлатежнымиКартами КАК ОтчетОРозничныхПродажахОплатаПлатежнымиКартами ГДЕ ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка.Проведен И ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка.Дата >= &Дата1 СГРУППИРОВАТЬ ПО ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка; ВЫБРАТЬ ЕСТЬNULL(СУММА(ОтчетОРозничныхПродажахПродажиПоДисконтнымКартам.Сумма), 0) КАК ПродажиПоДисконтнымКартам_Сумма, ОтчетОРозничныхПродажахПродажиПоДисконтнымКартам.Ссылка КАК Ссылка ПОМЕСТИТЬ ОтчетОРозничныхПродажахПродажиПоДисконтнымКартам ИЗ Документ.ОтчетОРозничныхПродажах.ПродажиПоДисконтнымКартам КАК ОтчетОРозничныхПродажахПродажиПоДисконтнымКартам ГДЕ ОтчетОРозничныхПродажахПродажиПоДисконтнымКартам.Ссылка.Проведен И ОтчетОРозничныхПродажахПродажиПоДисконтнымКартам.Ссылка.Дата >= &Дата1 СГРУППИРОВАТЬ ПО ОтчетОРозничныхПродажахПродажиПоДисконтнымКартам.Ссылка; ВЫБРАТЬ КОЛИЧЕСТВО(ОтчетОРозничныхПродажахВозвращенныеТовары.НомерСтроки) КАК ВозвращенныеТовары_, ЕСТЬNULL(СУММА(ОтчетОРозничныхПродажахВозвращенныеТовары.Количество), 0) КАК ВозвращенныеТовары_Количество, ЕСТЬNULL(СУММА(ОтчетОРозничныхПродажахВозвращенныеТовары.Сумма), 0) КАК ВозвращенныеТовары_Сумма, ОтчетОРозничныхПродажахВозвращенныеТовары.Ссылка КАК Ссылка ПОМЕСТИТЬ ОтчетОРозничныхПродажахВозвращенныеТовары ИЗ Документ.ОтчетОРозничныхПродажах.ВозвращенныеТовары КАК ОтчетОРозничныхПродажахВозвращенныеТовары ГДЕ ОтчетОРозничныхПродажахВозвращенныеТовары.Ссылка.Проведен И ОтчетОРозничныхПродажахВозвращенныеТовары.Ссылка.Дата >= &Дата1 СГРУППИРОВАТЬ ПО ОтчетОРозничныхПродажахВозвращенныеТовары.Ссылка; //РеализацияТоваров ВЫБРАТЬ РеализацияТоваров.Проведен КАК Проведен, РеализацияТоваров.ПометкаУдаления КАК ПометкаУдаления, РеализацияТоваров.Дата КАК Дата, РеализацияТоваров.Дата КАК Дата_, РеализацияТоваров.Номер КАК Номер, "Реализация товаров" КАК __, РеализацияТоваров.СуммаДокумента КАК СуммаДокумента, "" КАК СуммаВозвратов, РеализацияТоваров.Магазин КАК Магазин, "" КАК СуммаОплатыНаличных, "" КАК _, РеализацияТоваров.Ссылка КАК Ссылка ПОМЕСТИТЬ РеализацияТоваров ИЗ Документ.РеализацияТоваров КАК РеализацияТоваров ГДЕ РеализацияТоваров.Ссылка.Проведен И РеализацияТоваров.Ссылка.Дата >= &Дата1 СГРУППИРОВАТЬ ПО РеализацияТоваров.Ссылка; ВЫБРАТЬ ЕСТЬNULL(СУММА(РеализацияТоваровТовары.Сумма), 0) КАК Товары_Сумма, РеализацияТоваровТовары.Ссылка КАК Ссылка ПОМЕСТИТЬ РеализацияТоваровТовары ИЗ Документ.РеализацияТоваров.Товары КАК РеализацияТоваровТовары ГДЕ РеализацияТоваровТовары.Ссылка.Проведен И РеализацияТоваровТовары.Ссылка.Дата >= &Дата1 СГРУППИРОВАТЬ ПО РеализацияТоваровТовары.Ссылка; ВЫБРАТЬ 0 КАК ОплатаПлатежнымиКартами_Сумма, РеализацияТоваровОплатаПлатежнымиКартами.Ссылка КАК Ссылка ПОМЕСТИТЬ РеализацияТоваровОплатаПлатежнымиКартами ИЗ Документ.РеализацияТоваров КАК РеализацияТоваровОплатаПлатежнымиКартами ГДЕ РеализацияТоваровОплатаПлатежнымиКартами.Ссылка.Проведен И РеализацияТоваровОплатаПлатежнымиКартами.Ссылка.Дата >= &Дата1 СГРУППИРОВАТЬ ПО РеализацияТоваровОплатаПлатежнымиКартами.Ссылка; ВЫБРАТЬ 0 КАК ПродажиПоДисконтнымКартам_Сумма, РеализацияТоваровПродажиПоДисконтнымКартам.Ссылка КАК Ссылка ПОМЕСТИТЬ РеализацияТоваровПродажиПоДисконтнымКартам ИЗ Документ.РеализацияТоваров КАК РеализацияТоваровПродажиПоДисконтнымКартам ГДЕ РеализацияТоваровПродажиПоДисконтнымКартам.Ссылка.Проведен И РеализацияТоваровПродажиПоДисконтнымКартам.Ссылка.Дата >= &Дата1 СГРУППИРОВАТЬ ПО РеализацияТоваровПродажиПоДисконтнымКартам.Ссылка; ВЫБРАТЬ 0 КАК ВозвращенныеТовары_, 0 КАК ВозвращенныеТовары_Количество, 0 КАК ВозвращенныеТовары_Сумма, РеализацияТоваровВозвращенныеТовары.Ссылка КАК Ссылка ПОМЕСТИТЬ РеализацияТоваровВозвращенныеТовары ИЗ Документ.РеализацияТоваров КАК РеализацияТоваровВозвращенныеТовары ГДЕ РеализацияТоваровВозвращенныеТовары.Ссылка.Проведен И РеализацияТоваровВозвращенныеТовары.Ссылка.Дата >= &Дата1 СГРУППИРОВАТЬ ПО РеализацияТоваровВозвращенныеТовары.Ссылка; ВЫБРАТЬ * ИЗ ОтчетОРозничныхПродажах ЛЕВОЕ СОЕДИНЕНИЕ ОтчетОРозничныхПродажахТовары ПО ОтчетОРозничныхПродажахТовары.Ссылка = ОтчетОРозничныхПродажах.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ ОтчетОРозничныхПродажахОплатаПлатежнымиКартами ПО ОтчетОРозничныхПродажахОплатаПлатежнымиКартами.Ссылка = ОтчетОРозничныхПродажах.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ ОтчетОРозничныхПродажахПродажиПоДисконтнымКартам ПО ОтчетОРозничныхПродажахПродажиПоДисконтнымКартам.Ссылка = ОтчетОРозничныхПродажах.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ ОтчетОРозничныхПродажахВозвращенныеТовары ПО ОтчетОРозничныхПродажахВозвращенныеТовары.Ссылка = ОтчетОРозничныхПродажах.Ссылка ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ * ИЗ РеализацияТоваров ЛЕВОЕ СОЕДИНЕНИЕ РеализацияТоваровТовары ПО РеализацияТоваровТовары.Ссылка = РеализацияТоваров.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ РеализацияТоваровОплатаПлатежнымиКартами ПО РеализацияТоваровОплатаПлатежнымиКартами.Ссылка = РеализацияТоваров.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ РеализацияТоваровПродажиПоДисконтнымКартам ПО РеализацияТоваровПродажиПоДисконтнымКартам.Ссылка = РеализацияТоваров.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ РеализацияТоваровВозвращенныеТовары ПО РеализацияТоваровВозвращенныеТовары.Ссылка = РеализацияТоваров.Ссылка УПОРЯДОЧИТЬ ПО Дата, Номер 150 строк если бы я использовал объединить между табличными частями, то запрос был бы строк 500 а нужно все это для универсального реестра документов, которого очень не хватает в таких недоконфигах, как Розница. я сделал реестр, который подключается ко всем спискам документов, подтягивает из них отборы и автоматически настраивается, но у юзера есть возможность дополнительно настроить внешний вид - выбрать несколько видов документов и отметить выводимые колонки, изменить их порядок и ширину. если кому не лень затестить, могу выложить сюда, есть только одно вмешательство в один общий модуль. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |