Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Error 303  [new]
MCMXCVIII
Member

Откуда:
Сообщений: 130
select case
when isnull(t2.Col3, 0) <> t1.Col3 then 100 -- Col3 int
else 0
end
from table1 t1,
table2 t2
where t1.Col1 *= t2.Col2

-- The table 'table2' is an inner member of an outer-join clause. This is not allowed if the table also participates in a regular join clause.

Есть обходные решения(ниже), но чем MS'у первый запрос не угодил ?!

select (select case
when isnull(t2.Col3, 0) <> t1.Col3 then 100
else 0
end
from table2 t2
where t1.Col1 *= t2.Col2
)
from table1 t1

select 100 * abs(sign(isnull(t2.Col3, 0) - t1.Col3))
from table1 t1,
table2 t2
where t1.Col1 *= t2.Col2
5 июл 04, 21:12    [785918]     Ответить | Цитировать Сообщить модератору
 Re: Error 303  [new]
BugsBunny
Member

Откуда: GMT+5=EST
Сообщений: 2414
What about replace obsolete *= with LEFT JOIN

...
from table1 t1,
table2 t2
where t1.Col1 *= t2.Col2
-->
...
from table1 t1 LEFT  JOIN 
table2 t2 
ON t1.Col1 = t2.Col2
5 июл 04, 23:07    [786018]     Ответить | Цитировать Сообщить модератору
 Re: Error 303  [new]
MCMXCVIII
Member

Откуда:
Сообщений: 130
2 BugsBunny
Да я знаю как обойти ошибку, вопрос был в другом. Почему такая ошибка возникает ? Если сравнить мой 1-й запрос и последний, то получится что разницу между двумя числами он считает без проблем, а узнать равны эти числа или нет нельзя.
6 июл 04, 10:08    [786403]     Ответить | Цитировать Сообщить модератору
 Re: Error 303  [new]
MCMXCVIII
Member

Откуда:
Сообщений: 130
Ну так чем отличается запрос
select (case
         when isnull(t2.Col3, 0) <> t1.Col3 then 100
         else 0
       end)
  from table11 t1,
       table22 t2
 where t1.Col1 *= t2.Col2
от
select (select case
         when isnull(t2.Col3, 0) <> t1.Col3 then 100
         else 0
       end)
  from table11 t1,
       table22 t2
 where t1.Col1 *= t2.Col2
кроме того факта, что первый из них выдает ошибку.
6 июл 04, 13:50    [787304]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить