PDA

Просмотр полной версии : Фильтрация в запросе при левом соединении



ilya80let
17.10.2013, 13:04
Вообщем не пойму поведение, при левом соединении у меня должны быть все записи из таблицы Талон, и совпадения из ВыполненныеРаботы. Но в действительности при использовании отбора ВыполненныеРаботыРаботы.С� �ылка.Проведен = ИСТИНА у меня уменьшается количество записей в таблице Талон (для примера без условия 227 записей, с условием 193). Чем сие объясняется? Уменьшается за счет записей, где нет сопоставления с документом ВыполненныеРаботыРаботы.

ВЫБРАТЬ
Талон.Ссылка КАК Ссылка,
ВыполненныеРаботыРаботы.О� �ончаниеРаботы КАК ДатаДиагностики
ИЗ
Документ.Талон КАК Талон
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ВыполненныеРабот� �.Работы КАК ВыполненныеРаботыРаботы
ПО Талон.Ссылка = ВыполненныеРаботыРаботы.С� �ылка.ДокументОснование
ГДЕ
Талон.Проведен = ИСТИНА
И ВыполненныеРаботыРаботы.С� �ылка.Проведен = ИСТИНА


---------- Post added at 12:04 ---------- Previous post was at 11:22 ----------

Немног подумав решил, что сначала идет соединение, а уже потом фильтрация.

Bolzen
18.10.2013, 11:18
Может косяк платформы? было и такое.
Сейчас глянул полно отчетов с похожими запросами и все нормально. Косяки бывают только если связь установлю неправильно, может и тут посмотреть повнимательней?

kyafnsum
19.10.2013, 17:13
[/COLOR]ВыполненныеРаботыРаботы.С� �ылка.ДокументОснование
ВыполненныеРаботыРаботы.С� �ылка.Проведен = ИСТИНА
При такого рода выборе полей в запросах через . происходит разыменование полей, т.е. платформа сама выполняет запросы, явно в тексте неописанные, вот и результат может быть странным. Опишите запрос явно, без разыменования, тогда м.б. получится.