2016-03-23 12 views
0
select * 
from DBNAME.dbo.Shell_V36 V 
inner join 
DBNAME.DBO.Promo P 
on 
Case 
when 
(V.Product = P.From_Product_Code) 
And (V.cur_date >= P.Promo_end_date) 
or (V.cur_date <= P.Promo_start_date) 
then (P.To_Product_Code) 
else(P.From_Product_Code) 
end 

「条件が期待される文脈で指定された非ブール型の式が、 'end'の近くにあります。誰でも私を助けてください。条件が期待される文脈で指定された非ブール型の式で、 'end'の近く。エラー

+0

条件が期待されているコンテキストで指定された非boolean型の[表現の可能性のある重複し、近くの 'END'](http://stackoverflow.com/questions/3018549/an-expression-of-non-boolean-type-specified-in-a-context-where-a-condition-is-ex) –

+0

私はこれは重複しているとは思わない - それは同じ質問タイトルを持っているが、質問の内容と答えは異なる – David

答えて

1

あなたはJOIN操作のON句で使用Shell_V36のテーブルからフィールドを提供する必要があります。

select * 
from DBNAME.dbo.Shell_V36 V 
inner join DBNAME.DBO.Promo P 
on Case when 
      (V.Product = P.From_Product_Code) And 
      (V.cur_date >= P.Promo_end_date) 
      or 
      (V.cur_date <= P.Promo_start_date) 
     then (P.To_Product_Code) 
     else (P.From_Product_Code) 
    End = V.code -- presumably code field should be used 
関連する問題