我有這個SQL SELECT查詢。SQL如何將SELECT查詢下的CASE賦值給一個變量?
SELECT STOCK
,QTY*PRICE AS 'TOTAL'
,(QTY*PRICE)*RATE AS 'VALUATION'
,((QTY*PRICE)*RATE)+1 AS 'ADD_VALUATION'
,CASE WHEN GRP = 'A' THEN 100 - isnull(LDP_A,0)
WHEN GRP = 'B' THEN 100 - isnull(LDP_B,0)
WHEN GRP = 'C' THEN 100 - isnull(LDP_C,0)
-- TO Z
END AS 'LDP'
,(((QTY*PRICE)*RATE)+1)
/
(CASE WHEN GRP = 'A' THEN 100 - isnull(LDP_A,0)
WHEN GRP = 'B' THEN 100 - isnull(LDP_B,0)
WHEN GRP = 'C' THEN 100 - isnull(LDP_C,0)
-- TO Z
END) * RATE AS HTC
FROM STOCKBL
有沒有辦法清除這種多餘的語句?我怎樣才能將CASE賦值給一個變量,這樣我就可以用更整潔的代碼來替換它。
這是MySQL或SQL Server? –
@GiorgosBetsos它是SQL服務器。道歉 – theo
什麼是GRP的情況下? – Rajan