Здравствуйте, vlaban, Вы писали:
V>столкнулся с непонятностью в MS SQL в использовнии этого соединения таблиц с помьщью =*
V>Кратко: запрос
V>SELECT c_event.d_ev,
V>c_event.c_event,
V>C_EVENT.c_cus_se c_custom,
V>c_event.c_event
V>m_doc_sr.customer
V>FROM (select m_doc_sr.c_event, lpu.customer from ic_as.dbo.m_doc_sr, ic_as.dbo.c_custom lpu
V>where m_doc_sr.c_cus_my = LPU.c_custom) m_doc_sr,
V>dbo.c_event
V>WHERE m_doc_sr.c_event =* c_event.c_event
V>т.е. невозможно привязать к таблице, кот. перед =* (в моем случае m_doc_sr.c_event) еще что нибудь. Хотя идет полная однозначность, привязка должна быть по c_event, т.е. тех c_event кот. нет в m_doc_sr должен выставляться NULL.
V>выдается ошибка
V>Msg 303, Level 16, State 1, Line 1
V>The table 'dbo.m_doc_sr' is an inner member of an outer-join clause. This is not allowed if the table also participates in a regular join clause.
V>Как это реализовать?
V>Спасибо
SELECT c_event.d_ev,
c_event.c_event,
C_EVENT.c_cus_se c_custom,
c_event.c_event
m_doc_sr.customer
FROM (select m_doc_sr.c_event, lpu.customer from ic_as.dbo.m_doc_sr, ic_as.dbo.c_custom lpu
where m_doc_sr.c_cus_my = LPU.c_custom) m_doc_sr_1,
dbo.c_event
WHERE m_doc_sr_1.c_event =* c_event.c_event