Здравствуйте, MasterZiv, Вы писали:
MZ>Выкинте это Г куда подальше из запроса, его уже скоро парсер тупо MZ>понимать перестанет. MZ>Или у вас старый MSSQL ? Не, не может быть....
MZ>Это изза того, что у вас используется derived table (подзапрос во FROM), MZ>в котором обычный JOIN, не внешний. Он раскрывается и получается MZ>фигня.
MZ>Перепишите запрос без подзапроса во FROM и через ANSI JOINs, MZ>напишите хотя бы без left join, если не сможете с ним написать. MZ>Я покажу, как сделать left.
База MS SQL 2000
Собственно я и пытаясь уйти от этой ошибки соорудил внутренний запрос во FROMе
вот без него
SELECT c_event.d_ev,
c_event.c_event,
C_EVENT.c_cus_se,
c_event.c_event,
lpu.customer
FROM dbo.c_event,
ic_as.dbo.m_doc_sr,
ic_as.dbo.c_custom lpu
WHERE m_doc_sr.c_event =* c_event.c_event
AND m_doc_sr.c_cus_my = LPU.c_custom
Говорю, спасибо, бо получилось, собственно вот запрос: (два раза выводится c_event с двух таблиц, потому что есть такие c_event.c_event кот.нет в таблице m_doc_sr)
собственно вот оно, решение:
SELECT c_event.d_ev,
c_event.c_event,
m_doc_sr.c_event,
C_EVENT.c_cus_se,
c_event.c_event,
lpu.customer
FROM dbo.c_event LEFT OUTER JOIN ic_as.dbo.m_doc_sr ON m_doc_sr.c_event = c_event.c_event
LEFT JOIN ic_as.dbo.c_custom lpu ON m_doc_sr.c_cus_my = LPU.c_custom