2014-01-10 74 views
-6

條件首先,我對此事一無所知IF條件SQL Server 2008中如果在SQL Server 2008

我有一個表[AccountHistory] wWith 2列AccountType & Amount

AccountType可以有不同的值(Deposit, Withdrawal, Profit,...etc),我需要一個查詢來執行以下操作:

If AccountType = Withdrawal Then Amount = Amount * -1 

例如:

AcountType   Amount 
----------------------------- 
    Deposit    100 
    Withdrawal   -150 
    Profit    220 
    Withdrawal   -200 
+0

聽起來像你可以直接用'UPDATE'語句做到這一點 –

+0

爲什麼我得到了-ve ??? !! –

+1

由於您表現出完全缺乏理解力和/或努力,因此您會被拒絕投票。在請求堆棧溢出幫助之前,您應該至少在理解您的問題上表現出最小的努力,因爲這些基本問題不會增加堆棧溢出的價值。生活有時候很殘酷。 –

回答

0
update AccountHistory 
set amount = amount * -1 
where accounttype = 'Withdrawal'; 
+0

我在ASP頁面出現錯誤:關鍵字'更新'附近的語法錯誤雖然它在查詢生成器中工作 –

+0

沒有足夠的信息來幫助,因爲該查詢應該有效。 –

+0

是的查詢工作正常,但我在ASP頁面中使用此查詢時得到上述錯誤我不知道爲什麼...有沒有其他的選擇? –

0

除了由約翰提供的答案吉布(原則上完全正確),我也會在這裏觀察你的邏輯 - 是否有任何限制阻止用戶在系統環境中輸入負值?

如果不是這樣,那麼隨着數據收集的增長,您可能會無意中將負數轉爲正數,並且會得到一些非常奇怪的結果。此外,該查詢只能運行一次 - 一旦出現附加數據,再次執行它就會將原始負值轉換爲正值。

update AccountHistory 
set amount = amount * -1 
where accounttype = 'Withdrawal' 
and amount > 0;