日期:2014-05-18  浏览次数:20581 次

SQL排序與計算問題
auto_no mat_qty dec_qty id_no      
A0005 10000 10000 1
B0001 -500 9500 2
C0001 15000 24500 4
B0002 -12000 12500 3
B0003 -5000 7500 5
B0004 3000 4500 6

表格內容及結果如上﹐dec_qty值為上一筆dec_qty與當前記錄mat_qty之和﹐請各位幫忙以下表格內容要如何實現?謝謝﹗﹗

auto_no mat_qty dec_qty id_no
A0005 10000 10000 1
B0001 -500 9500 2
C0001 15000 24500 4
B0002 -12000 12500 3
B0003 -5000 7500 5
B0004 3000 4500 6


------解决方案--------------------
魚不對吧
------解决方案--------------------
--如果id_no沒有順序的話

--創建測試環境
Create Table 表
(auto_no Char(5),
mat_qty Int,
dec_qty Int,
id_no Int)
--插入數據
Insert 表 Select 'A0005 ', 10000, 0, 1
Union All Select 'B0001 ', -500, 0, 2
Union All Select 'C0001 ', 15000, 0, 4
Union All Select 'B0002 ', -12000, 0, 3
Union All Select 'B0003 ', -5000, 0, 5
Union All Select 'B0004 ', -3000, 0, 6
GO
--測試
--更新
Declare @dec_qty Int
Select @dec_qty = 0

Update 表 Set @dec_qty = @dec_qty + mat_qty, dec_qty = @dec_qty

Select * From 表
GO
--刪除測試環境
Drop Table 表
--結果
/*
auto_no mat_qty dec_qty id_no
A0005 10000 10000 1
B0001 -500 9500 2
C0001 15000 24500 4
B0002 -12000 12500 3
B0003 -5000 7500 5
B0004 -3000 4500 6
*/