1
我是新來的遊標,所以我不知道如果我正確地這樣做,但我試圖環通臨時表的foreach行和計算使用Column_X COLUMN_Y值和一個變量的另一個值。變量值是正確的,但我沒有從光標獲取Column_X的值。請看下圖:SQL - CURSOR不取值正確
SQL:
DECLARE @id INT
DECLARE @val DECIMAL
DECLARE @percent DECIMAL
DECLARE my_cursor CURSOR FOR
SELECT a.Id, a.Val FROM #Temp_Tbl a
OPEN my_cursor
FETCH FROM my_cursor INTO @id, @val
WHILE @@FETCH_STATUS = 0
BEGIN
[email protected] is of type DECIMAL & is populated previously
PRINT Convert(varchar,@id) + ': (' + Convert(varchar,@val) + '/' + Convert(varchar,@Total) + '),'
SELECT @percent = @val/@Total
UPDATE #Temp_Tbl SET PERCENT_OF = @percent WHERE Id = @id
FETCH NEXT FROM my_cursor INTO @id, @val
END
CLOSE my_cursor
DEALLOCATE my_cursor
結果:
| ID | Val | PERCENT_OF |
| 1 | 25 | 1 |
| 2 | 45 | 0 |
| 3 | 30 | 0 |
輸出的信息:
2: (1/200) --NOTE: It's not printing the first record but 1 does get updated in the
3: (0/200) --PERCENT_OF column in the first row & 0 in the second.
能
人告訴我哪裏錯了?謝謝你的幫助。
在光標之前的查詢。 '@ Total'正在正確填充bc我的'打印'消息具有正確的'@ Total'值。 – ExceptionLimeCat
「PERCENT_OF」列中存儲了哪些類型的數字?十進制還是整數? –
對不起。 –