|   |   | 
| 
 | Полное соединение | ☑ | ||
|---|---|---|---|---|
| 0
    
        BuHu 11.10.11✎ 13:52 | 
        Не могу понять как работает Полное соединение . есть документ Перемещение товаров , на основании него водят документы - Расходный ордер на товары и Приходный ордер на товары , табличные части этих трех документов должны быть идентичны . нужен отчет который бы показывал расхождения .  пишу вот такой запрос
  |ВЫБРАТЬ | ВЫБОР | КОГДА Перемещение.Номенклатура ЕСТЬ NULL | ТОГДА ВЫБОР | КОГДА Расходный.Номенклатура ЕСТЬ NULL | ТОГДА Приходный.Номенклатура | ИНАЧЕ Расходный.Номенклатура | КОНЕЦ | ИНАЧЕ Перемещение.Номенклатура | КОНЕЦ КАК НоменклатураПеремещение, | ВЫБОР | КОГДА Перемещение.Ссылка ЕСТЬ NULL | ТОГДА ВЫБОР | КОГДА Расходный.Ссылка.ДокументПередачи ЕСТЬ NULL | ТОГДА Приходный.Ссылка.ДокументПеремещения | ИНАЧЕ Расходный.Ссылка.ДокументПередачи | КОНЕЦ | ИНАЧЕ Перемещение.Ссылка | КОНЕЦ КАК Перемещение, | ВЫБОР | КОГДА Перемещение.ХарактеристикаНоменклатуры ЕСТЬ NULL | ТОГДА ВЫБОР | КОГДА Расходный.ХарактеристикаНоменклатуры ЕСТЬ NULL | ТОГДА Приходный.ХарактеристикаНоменклатуры | ИНАЧЕ Расходный.ХарактеристикаНоменклатуры | КОНЕЦ | ИНАЧЕ Перемещение.ХарактеристикаНоменклатуры | КОНЕЦ КАК ХарПеремещение, | ВЫБОР | КОГДА Перемещение.Ссылка.СкладОтправитель ЕСТЬ NULL | ТОГДА ВЫБОР | КОГДА Расходный.Ссылка.ДокументПередачи.СкладОтправитель ЕСТЬ NULL | ТОГДА Приходный.Ссылка.ДокументПеремещения.СкладОтправитель | ИНАЧЕ Расходный.Ссылка.ДокументПередачи.СкладОтправитель | КОНЕЦ | ИНАЧЕ Перемещение.Ссылка.СкладОтправитель | КОНЕЦ КАК СкладОтправитель, | ВЫБОР | КОГДА Перемещение.Ссылка.СкладПолучатель ЕСТЬ NULL | ТОГДА ВЫБОР | КОГДА Расходный.Ссылка.ДокументПередачи.СкладПолучатель ЕСТЬ NULL | ТОГДА Приходный.Ссылка.ДокументПеремещения.СкладПолучатель | ИНАЧЕ Расходный.Ссылка.ДокументПередачи.СкладПолучатель | КОНЕЦ | ИНАЧЕ Перемещение.Ссылка.СкладПолучатель | КОНЕЦ КАК СкладПолучатель, | ЕСТЬNULL(Приходный.Количество, 0) КАК КоличествоПриход, | ЕСТЬNULL(Перемещение.Количество, 0) КАК КоличествоПеремещение, | ЕСТЬNULL(Расходный.Количество, 0) КАК КоличествоРасход |ИЗ | Документ.ПеремещениеТоваров.Товары КАК Перемещение | ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ПриходныйОрдерНаТоварыТовары.Номенклатура КАК Номенклатура, | ПриходныйОрдерНаТоварыТовары.Количество КАК Количество, | ПриходныйОрдерНаТоварыТовары.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, | ПриходныйОрдерНаТоварыТовары.Ссылка КАК Ссылка | ИЗ | Документ.ПриходныйОрдерНаТовары.Товары КАК ПриходныйОрдерНаТоварыТовары | ГДЕ | ПриходныйОрдерНаТоварыТовары.Ссылка.ДокументПеремещения ССЫЛКА Документ.ПеремещениеТоваров | И ПриходныйОрдерНаТоварыТовары.Ссылка.Дата >= &ДатаНач | И ПриходныйОрдерНаТоварыТовары.Ссылка.Дата <= &ДатаКон | И ПриходныйОрдерНаТоварыТовары.Ссылка.Проведен = ИСТИНА) КАК Приходный | ПО Перемещение.Номенклатура = Приходный.Номенклатура | И Перемещение.ХарактеристикаНоменклатуры = Приходный.ХарактеристикаНоменклатуры | И (Приходный.Ссылка.ДокументПеремещения В (Перемещение.Ссылка)) | ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | РасходныйОрдерНаТоварыТовары.Номенклатура КАК Номенклатура, | РасходныйОрдерНаТоварыТовары.Количество КАК Количество, | РасходныйОрдерНаТоварыТовары.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, | РасходныйОрдерНаТоварыТовары.Ссылка КАК Ссылка | ИЗ | Документ.РасходныйОрдерНаТовары.Товары КАК РасходныйОрдерНаТоварыТовары | ГДЕ | РасходныйОрдерНаТоварыТовары.Ссылка.ДокументПередачи ССЫЛКА Документ.ПеремещениеТоваров | И РасходныйОрдерНаТоварыТовары.Ссылка.Дата >= &ДатаНач | И РасходныйОрдерНаТоварыТовары.Ссылка.Дата <= &ДатаКон | И РасходныйОрдерНаТоварыТовары.Ссылка.Проведен = ИСТИНА) КАК Расходный | ПО Перемещение.Номенклатура = Расходный.Номенклатура | И Перемещение.ХарактеристикаНоменклатуры = Расходный.ХарактеристикаНоменклатуры | И (Расходный.Ссылка.ДокументПередачи В (Перемещение.Ссылка)) |ГДЕ | Перемещение.Ссылка.Дата >= &ДатаНач | И Перемещение.Ссылка.Дата <= &ДатаКон | И Перемещение.Ссылка.Проведен = ИСТИНА | И Перемещение.Ссылка = &Ссылка но в результат попадают только товары из табличной части перемещения , т.е. если в Расходном ордере на товары есть товара которого нет в Перемещении , то он в отчет не попадает . Помогите разобраться , подскажите что в запросе не так . З.Ы. условие на расхождение пока не накладываю , т.к. изначально не все товары попадают в результат | |||
| 1
    
        Mort 11.10.11✎ 13:54 | 
        Условие "ГДЕ" все режет.     | |||
| 2
    
        BuHu 11.10.11✎ 13:55 | 
        (1) условие для перемещения?     | |||
| 3
    
        catena 11.10.11✎ 13:56 | 
        Условие... Условие на всю выборку... Строки, где Перемещение is null идут лесом...     | |||
| 4
    
        Mort 11.10.11✎ 13:56 | 
        (3) угу     | |||
| 5
    
        DrHiHi 11.10.11✎ 13:58 | 
        возможно проще будет через объединить все ;))     | |||
| 6
    
        DrHiHi 11.10.11✎ 14:05 | 
        а если еще точнее то есть такой регистр как "Товары к передачи со склада" и смотришь действительно ли по нем закрылось остатки по перемещению     | |||
| 7
    
        BuHu 11.10.11✎ 14:09 | 
        (6) понимаю что запросы лучше строить на регистрах , но не хотелось бы целиком переписывать запрос , может есть еще какие   варианты как подправить этот запрос , что б он заработал?     | |||
| 8
    
        Mort 11.10.11✎ 14:11 | 
        (7) Ответ сидит в двух остальных таблицах     | |||
| 9
    
        BuHu 11.10.11✎ 14:16 | 
        (8) а подробней можно?     | |||
| 10
    
        BuHu 11.10.11✎ 14:17 | 
        +(9) сделать Перемещение тоже виртуальной таблицей и там накладывать условие?     | |||
| 11
    
        catena 11.10.11✎ 14:18 | 
        (9)Сформируй без итогового ГДЕ и посмотри на таблицу.     | |||
| 12
    
        hhhh 11.10.11✎ 14:18 | 
        (9) ну так
  ГДЕ | Перемещение.Ссылка.Дата >= &ДатаНач | И Перемещение.Ссылка.Дата <= &ДатаКон | И Перемещение.Ссылка.Проведен = ИСТИНА | И Перемещение.Ссылка = &Ссылка | ИЛИ Перемещение.Ссылка ЕСТЬ NULL | |||
| 13
    
        BuHu 11.10.11✎ 14:26 | 
        сделал иначе , выбрал все подходящие условиям перемещения во временную таблицу , затем (10) и все заработало     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |