Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > проблема с соединениями


Автор: Dimyan 6.3.2007, 14:43
Здравствуйте!
Такая проблема 
если написано
Код


SELECT sum(dsr.Kol) as kol
    FROM dbo._Doc236 dr
        inner join dbo._Doc236_VT1 dsr on dr.id=dsr.IDDoc and dsr.Del=0 and dsr.IDNomenkl=3443
        left join dbo._Doc117 rn  on dr.id=rn.IDDocON and rn.Del=0
        inner join  dbo._Ref41 sk on sk.id=rn.IDSklad and sk.AddrHran = 1


то судя по плану мой left join игнорируется (результат естественно тоже не верен), а все приобразовывается в inner join

если написать по старому
Код


SELECT sum(dsr.Kol) as kol
    FROM dbo._Doc236 dr, dbo._Doc236_VT1 dsr, dbo._Doc117 rn, dbo._Ref41 sk
    where dsr.IDDoc=dr.id
        and rn.IDDocON *= dr.id
        and sk.id=rn.IDSklad and sk.AddrHran = 1


то выдается ошибка
Код

Error:
The table 'dbo._Doc236' is an inner member of an outer-join clause. This is not allowed if the table also participates in a regular join clause.
Occurred on Line : 1


Я чего то не так делаю или что нельзя использовать внешнее соединение с и внутреннее с участием одной таблицы?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)