[英]Missing expression error in Select subquery in Case expression
我必须编写一个带有Case表达式的SQL,该表达式连接许多表以检索2个字段,这将填充另一个表B。
以下是我的一些案例条件:
CASE
A_FLG = 'Y' and Mod code = 'P' and Year(T_DT) < 2011
set GRP_ID = 2
Colum TDR_DT是从其他表C派生的。我将SQL编译如下:
Select
case
when A.A_FLG = 'Y' and C.MCODE ='P'
and (
select extract(year from C.T_DT) from Table C where
extract(year from C.T_DT)
)<2010
then '2'
else '-1'
END "GRP_ID",
from Table A
join Table F
on A.ID=F.ID
在执行查询时,我发现指向第一个Case的错误“Missing expression”。 我试图找出可能的错误,但无法做到这一点。 非常感谢您的帮助,因为我还有很多案例要写,这阻碍了我的工作。
表A
, B
和C
之间没有任何关系,所以我假设没有关系。 并且您希望从表达式中的C
表访问MCODE
,以便为此启动另一个子查询,
Select
case when A.A_FLG = 'Y'
and (Select TOP 1 C.MCODE from tablec C Where yourcondition =value) ='P'
and (select extract(year from C.T_DT) from Table C where extract(year from C.T_DT))<2010
then '2'
else '-1'
END "GRP_ID",
from Table A
join Table F
on A.ID=F.ID
我选择Top 1
是因为您需要确保select语句将始终返回每个连接行的一个值。 如果没有,则可以将其删除,以确保您的条件将始终返回单行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.