假設我有一個表amountInfo,其中的列(id,amount1,amount2,amount3) 其中amountX是貨幣值,id是int值,範圍從1到10以下的一些int。因式分解SQL腳本中的while循環
目前,我有一些代碼,大約做到這一點:
declare @id int, @idmax int, @amounttotal money
select @idmax = (select max(Id) from amountInfo)
while (@id <= @idmax)
begin
select @amounttotal = sum(amount1 + amount2 + amount3)
from amountinfo where [email protected]
-- do something with @amounttotal
select @[email protected]+1
end
有沒有辦法分解出具有某種這裏複雜的select語句的while循環?我對C/C++/C#編程有經驗,但SQL對我來說還是一個新手。謝謝!
編輯:基本上「 - 做某事」部分涉及插入個人@amounttotals到另一個表。我正在運行的實際查詢比這更復雜,但我希望在發佈一個巨大的代碼示例之前先解決這個簡單的問題。
我有一個想法,但我擔心它會在什麼*做點什麼@ amounttotal *是......你能闡述一下它的條件? – 2010-05-18 18:39:40
我同意奧斯汀......你試圖做的事會驅動你的問題的答案是什麼。如果您嘗試更新或插入其他記錄,則可能只需使用子查詢。另外,ID是否對應於多行,或者只是總是1行? – 2010-05-18 18:45:46