|
Почему выполняется не тот запрос, который написан в 1С ? | ☑ | ||
---|---|---|---|---|
0
Flutt1
08.05.21
✎
10:39
|
Здравствуйте, запрос:
ВЫБРАТЬ ТоварыНаСервере.* ПОМЕСТИТЬ ТоварыНаСервере ИЗ &ТоварыНаСервере КАК ТоварыНаСервере ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Товары.* ПОМЕСТИТЬ Товары ИЗ &Товары КАК Товары ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТоварыНаСервере.Номенклатура КАК Номенклатура, ТоварыНаСервере.Характеристика КАК Характеристика, ТоварыНаСервере.Серия КАК Серия, ТоварыНаСервере.Упаковка КАК Упаковка, ТоварыНаСервере.КоличествоУпаковок КАК Количество, ТоварыНаСервере.КоличествоУпаковок КАК КоличествоУпаковок, ТоварыНаСервере.СтатусУказанияСерий КАК СтатусУказанияСерий, ТоварыНаСервере.НомерСтрокиВДокументе КАК НомерСтрокиВДокументе ИЗ ТоварыНаСервере КАК ТоварыНаСервере ЛЕВОЕ СОЕДИНЕНИЕ Товары КАК Товары ПО ТоварыНаСервере.Номенклатура = Товары.Номенклатура И ТоварыНаСервере.Характеристика = Товары.Характеристика По какой-то причине результат запроса получается такой, как будто у меня идет ПОЛНОЕ СОЕДИНЕНИЕ, а не ЛЕВОЕ. Попробовал вместо звездочки (.*) прописать поля таблиц полностью, тогда результатом запроса получается временная таблица ТоварыНаСервере. Причем, временная таблица Товары куда-то пропала (проверяю через Запрос.МенеджерВременныхТаблиц.Таблицы). Как такое может быть? Минус мозг. |
|||
1
brainguard
08.05.21
✎
10:49
|
(0) Как определили, что ПОЛНОЕ?
|
|||
2
Flutt1
08.05.21
✎
10:54
|
(1) В первой таблице 8 строк, а во второй 2 строки. В результате получается 16 строк
|
|||
3
brainguard
08.05.21
✎
10:59
|
(2) Неправильный метод. Такое может быть и при левом и при внутреннем соединении. Полное соединение - это левое плюс правое.
И зачем вам левое соединение, если вы используете только поля левой таблицы? В этом нет никакого смысла |
|||
4
Flutt1
08.05.21
✎
11:05
|
(3) Извините, да, я убрал поле
ЕСТЬNULL(ТоварыНаСервере.КоличествоУпаковокФакт, Товары.КоличествоУпаковокФакт) КАК КоличествоУпаковокФакт , именно для этого нужна вторая таблица |
|||
5
Flutt1
08.05.21
✎
11:08
|
Аа, стоп, этого поля же нет в итоговом тексте запроса.. Тогда действительно, вторая таблица не нужна. Видимо из-за этого запрос неправильно в sql преобразуется. Спасибо
|
|||
6
brainguard
08.05.21
✎
11:10
|
(4) ТоварыНаСервере.КоличествоУпаковокФакт никогда не примет значение NULL
А что касается произведения таблиц. Концептуально любое соединение есть произведение таблиц с последующим фильтрованием результата |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |