[英]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.