我試圖讓下面的SQL代碼的工作,但是我正與找出如何做多個計算與case語句掙扎,這裏是代碼:多個計算
SELECT
dbo.Table1.PrimaryKeyID,
CASE
WHEN (number1 >0 AND number2 = 0)
THEN number1 = number1 + CalcView.Quantity
WHEN (number1 =0 AND number2 <=0)
THEN number3 = number3 + CalcView.Quantity,
number2 = number2 - CalcView.Quantity
WHEN (number1 =0 AND number2 >0)
THEN number3 = number3 + number2
number1 = number1 + (CalcView.Quantity - number2)
number2 = 0
END
FROM Table1
INNER JOIN CalcViewON Table1.PrimaryKeyID= CalcView.PrimaryKeyID
WHERE Table1.PrimaryKeyID= CalcView.PrimaryKeyID
- 的看法是目前擺脫SUM()的這會強迫我用GROUPBY
- 的名稱是不是我用的,我已經改變了他們更容易underst和..
正如你可以看到我剛纔把THEN內計算的那一刻,請任何人都可以點我如何得到這個說法的工作方向是正確的?三江源任何幫助,您可以給我
例子:
Case 1
Number1 = 5
Number2 = 0
CalcView.Quantity = 3
5 = 5 + 3 (8)
Case 2
Number 1 = 5
Number 2 = 3
Number 3 = 2
CalcView.Quantity = 3
2 = 2 + 3 (5)
3 = 3 - 3 (0)
Case 3
Number 1 = 5
Number 2 = 3
Number 3 = 2
CalcView.Quantity = 6
2 = 2 + 3 (5)
1 = 1 + (6 – 3) (4)
Number2 = 0
的宗旨:立足3個WHEN語句來更新數字1,數字和number3的。目前我正在使用select語句來確保我實現了正確的輸出...
CASE語句有哪些替代方法可以幫助我實現目標?再次感謝
你的語法都錯了,你想在你的榜樣,選擇4列?如果是這樣,那麼你需要三個單獨的案例陳述你能提供一個你希望你的查詢返回的例子輸出 – Tobsey 2015-02-10 12:21:39
除了Tobseys的問題,你能否提供樣本輸入?您可以使用http://sqlfiddle.com/作爲基礎爲我們生成示例場景 – 2015-02-10 12:22:55
您目前尚不清楚您要做什麼。你的前兩個「Whens」返回相同的值。那麼在你的第三和第四個「何時」你正在設置變量?你不能在case語句內設置變量,你只能返回一個值。所以「number1 = case(when number1 = 0 and number2 = 0)then 15 else 14 end」就是你如何用case語句設置一個變量。 – 2015-02-10 12:23:30