![]() |
Соединение таблиц в запросе. Добрый день.Платформа 8.2.15.317 файловая база. Выбираю номенклатуру из документов запросом. Запрос.Текст= "ВЫБРАТЬ | Док2.Номенклатура КАК Номенклатура2, | Док2.Количество КАК Количество2, | Док1.Номенклатура КАК Номенклатура, | Док1.Количество КАК Количество |ИЗ | Документ.ПоступлениеТоваровИУслуг.Товары КАК Док2 | ПОЛНОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровИУслуг.Товары КАК Док1 | ПО (Док1.Номенклатура = Док2.Номенклатура) |ГДЕ | Док2.Ссылка = &ВыбДокумент2 | И Док1.Ссылка = &ВыбДокумент1"; Выводится только совпадающая в документах номенклатура,хотя вид соединения таблиц в запросе используется различный: левое,правое,полное. |
бррррррр! |
скажи лучше, чё хотел достичь этим запросом? |
Понятно что брррр,но почему не выполняется вывод результатов согласно применяемому соединению. |
значит совпадает, должно все выводить. или что-то не договорил |
Потому как если не найдется второй документ по заданному условию соединения, то ссылка этого дока будет равна NULL, а не &ВыбДокумент |
Да,запрос примитивный,но два документа существуют реально,проверял во внешней обработке через параметры запроса,а вот результат такой.Для вас проверить дело пяти минут. |
хм, не работает |
а вот так работает выбрать * поместить док2 из Документ.ПоступлениеТоваровУслуг.Товары где Ссылка = &ВыбДокумент2 ; выбрать * поместить док1 из Документ.ПоступлениеТоваровУслуг.Товары где Ссылка = &ВыбДокумент1 ; выбрать Док2.Номенклатура КАК Номенклатура2, Док2.Количество КАК Количество2 ,Док1.Номенклатура КАК Номенклатура, Док1.Количество КАК Количество ИЗ док2 КАК Док2 ПОЛНОЕ СОЕДИНЕНИЕ док1 КАК Док1 ПО Док1.Номенклатура = Док2.Номенклатура |
дык все понятно. Сперва происходит объекдинение, появляется таблица типа Док1 Ном1 Кол1 Док2 Ном2 Кол2 Док1 Ном1 Кол1 Нулл Нулл Нулл Нулл Нулл Нулл Док2 Ном2 Кол2 А потом на эту табицу накладывается условие ГДЕ До1 = &Док1 И Док2 = &Док2 |
Спасибо за помощь, истинные профи.:) |
точно, лексус сразу сказал |
2(10) лучше почитай о порядке исполнения операторов в запросах SQL, тоже сможешь выдавать себя за профи ;) |
(12)полезное замечание,приму к сведению. |
Текущее время: 19:22. Часовой пояс GMT +3. |