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
我得到&#34;在预期条件的上下文中指定的非布尔类型的表达式,接近&#39; end&#39;。&#34;任何人都可以帮助我。
答案 0 :(得分:1)
您必须提供Shell_V36
操作的ON
子句中使用的JOIN
表中的字段:
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