Имя: Пароль:
1C
 
Как работает внутреннее соединение?
0 mikecool
 
21.05.15
10:46
По моим понятиям - пересечение таблиц при соблюдении условий соединений, однако:
Запрос 1 - возвращает одну запись

ВЫБРАТЬ ПЕРВЫЕ 1
    ЗаданиеНаПеревозкуРаспоряжения.Ссылка
ИЗ
    Документ.ЗаданиеНаПеревозку.Распоряжения КАК ЗаданиеНаПеревозкуРаспоряжения
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
        ПО (ЗаданиеНаПеревозкуРаспоряжения.Ссылка = &Ссылка)
            И (РеализацияТоваровУслуг.Проведен)
            И (НЕ РеализацияТоваровУслуг.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено))
            И ЗаданиеНаПеревозкуРаспоряжения.Распоряжение = РеализацияТоваровУслуг.Ссылка

Запрос 2 - возвращает устой набор

ВЫБРАТЬ ПЕРВЫЕ 1
    РеализацияТоваровУслуг.Ссылка
ИЗ
    Документ.ЗаданиеНаПеревозку.Распоряжения КАК ЗаданиеНаПеревозкуРаспоряжения
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
        ПО (ЗаданиеНаПеревозкуРаспоряжения.Ссылка = &Ссылка)
            И (РеализацияТоваровУслуг.Проведен)
            И (НЕ РеализацияТоваровУслуг.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыРеализацийТоваровУслуг.Отгружено))
            И ЗаданиеНаПеревозкуРаспоряжения.Распоряжение = РеализацияТоваровУслуг.Ссылка

В чем же мои понятия не верны?
1 DirecTwiX
 
21.05.15
10:49
Запросы одинаковые, только поля выборки разные? Не может такого быть..
2 Лефмихалыч
 
21.05.15
10:50
>Как работает внутреннее соединение?
сначала так: "зюк-зюк-зюк", а потом: "ПЫЫЫыыЩ!", только быстро.


думаю, дело в том, как работает ПЕРВЫЕ, а не как работает соединение.
3 mikecool
 
21.05.15
10:51
(2) понятно, похоже на правду )
4 Tateossian
 
21.05.15
10:51
Может тонкость вопроса заключается в SELECT TOP?
5 Ёпрст
 
21.05.15
10:52
(0) воткни order by в текст запроса - и всё будет
6 mikecool
 
21.05.15
10:55
все равно странно, топ накладывается же на выборку, которая образуется после соединения или ошибаюсь?
7 mikecool
 
21.05.15
10:57
+6 а блин, топ накладывается на первую таблицу...
8 Ненавижу 1С
 
гуру
21.05.15
10:57
где-то автор врет

ВЫБРАТЬ ПЕРВЫЕ 1
    ЗаданиеНаПеревозкуРаспоряжения.Ссылка, РеализацияТоваровУслуг.Ссылка
9 Ненавижу 1С
 
гуру
21.05.15
10:57
(7) что значит на первую, с чего решил?
10 mikecool
 
21.05.15
10:59
(9) по наблюдением за результатом
11 Tateossian
 
21.05.15
10:59
А сделай через временные таблицы
12 ssh2006
 
21.05.15
11:03
(10) может параметр Cсылка разный?
13 hhhh
 
21.05.15
11:05
точно. в &Ссылка запендюрили документ Реализация.
14 mikecool
 
21.05.15
11:10
(12, 13) нет
15 ssh2006
 
21.05.15
11:14
(14) сделал (8) во втором запросе?
16 hhhh
 
21.05.15
11:16
(14) ну покажите, как устанавливаете параметр в первом и втором запросе.
17 mikecool
 
21.05.15
11:20
(16)     Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("Ссылка", СсылкаНаЗаявку);
18 mikecool
 
21.05.15
11:21
в общем - остаюсь при мнении (2)
кто считает, что вру - проверяйте сами
19 ssh2006
 
21.05.15
11:21
(17) консоли запросов проверял?
20 DirecTwiX
 
21.05.15
11:50
(18) Попробуй (11) плз. Уж очень странное поведение ПЕРВЫЕ.
21 ssh2006
 
21.05.15
11:53
99,9% косяк в коде, параметре. Давно бы уже в консоли проверил бы автор
22 DirecTwiX
 
21.05.15
13:26
(18) Не поленился, проверил. Врёшь.


ВЫБРАТЬ
    1 КАК Поле
ПОМЕСТИТЬ ВТ1

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    2
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    2 КАК Поле
ПОМЕСТИТЬ ВТ2

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    4
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1
    ВТ1.Поле
ИЗ
    ВТ1 КАК ВТ1
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ2 КАК ВТ2
        ПО ВТ1.Поле = ВТ2.Поле
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший