SQL Server中的CASE WHEN
語法存在問題。我從下面的語法做錯了嗎?我在SQL Server的視圖上使用這種語法。檢查語法如下:CASE WHEN語法SQL Server 2008
SELECT
t1.ID ,
t1.ClassID ,
t1.theDate ,
t1.theTime ,
t1.Number01 ,
MAX(t2.Number01) AS Prev_Number01 ,
CASE
WHEN ((t1.Number01 - MAX(t2.Number01)) < 0
THEN (100000 - (MAX(t2.Number01)) + t1.Number01) ,
(t1.Number01 - MAX(t2.Number01)))
END AS _Number01 ,
t1.Number02 ,
MAX(t2.Number02) AS Prev_Number02 ,
CASE
WHEN ((t1.Number02 - MAX(t2.Number02)) < 0
THEN (100000 - (MAX(t2.Number02)) + t1.Number02) ,
(t1.Number02 - MAX(t2.Number02)))
END AS _Number02 ,
CONVERT(Decimal(18,3) ,
( t1.Number01
- MAX(t2.Number01)
)/
POWER(
POWER(
COALESCE(t1.Number01 - MAX(t2.Number01) , 0) ,
2)
+ POWER(
COALESCE(t1.Number02 - MAX(t2.Number02), 0) ,
2) ,
0.5
)
) AS _NumberA ,
t1.Number03 ,
t1.Number04 ,
t1.Number05 ,
t1.AD ,
t1.GM ,
MAX(t2.GM) AS Prev_GM ,
t1.GM - MAX(t2.GM) AS AX ,
t1.DC ,
t1.MW ,
t1.ULH ,
t1.UL ,
CONVERT(Decimal(18,3),
t1.MW/POWER(POWER(t1.MW,2) + POWER(t1.UL,2) , 0.5)
) AS UT ,
t1.RE ,
t1.FV ,
t1.TG ,
t1.NM ,
t1.CK
FROM
dbo._CTProduction AS t1
LEFT OUTER JOIN
dbo._CTProduction AS t2 ON t2.ClassID = t1.ClassID
AND t2.Number01 < t1.Number01
AND t2.Number02 < t1.Number02
AND t2.GM < t1.GM
GROUP BY
t1.ID, t1.ClassID, t1.theDate, t1.theTime,
t1.Number01, t1.Number02, t1.Number03, t1.Number04, t1.Number05,
t1.AD, t1.GM, t1.DC, t1.MW, t1.ULH, t1.UL,
t1.RE, t1.FV, t1.TG, t1.NM, t1.CK
這是錯誤消息:
消息156,級別15,狀態1,行中的關鍵字 '然後' 4
附近有語法錯誤。
另外還有一條CASE
聲明在第6行。它與第4行相同。任何人都可以幫助解決這個問題?
你看了嗎? ([CASE(Transact-SQL)](http://technet.microsoft.com/en-us/library/ms181765.aspx)) – 2014-09-04 02:11:20