总计查询应继续添加每行成本列

时间:2009-07-14 09:15:02

标签: sql sql-server-2005

我的表格列为

      Operation             Cost

     Material Issue         10 
     Material Return        20
     X                      30
     Y                      40
     Z                      50

我想要一个列

的查询
     Operation             Cost    Total

     Material Issue         10      10
     Material Return        20      30
     X                      30      60
     Y                      40      100
     Z                      50      150

ie ..,总计应该继续添加每行成本列

3 个答案:

答案 0 :(得分:2)

试试这个

DECLARE @Table TABLE(
        ID INT IDENTITY(1,1),
        Descr VARCHAR(20),
        Val FLOAT
)

INSERT INTO @Table (Descr,Val) SELECT 'X', 10
INSERT INTO @Table (Descr,Val) SELECT 'Y', 20
INSERT INTO @Table (Descr,Val) SELECT 'Z', 50
INSERT INTO @Table (Descr,Val) SELECT 'A', 75
INSERT INTO @Table (Descr,Val) SELECT 'B', 100

SELECT  t1.Descr,
        t1.Val,
        SUM(ISNULL(t2.Val,0))
FROM    @Table t1 LEFT JOIN
        @Table t2 ON t1.ID >= t2.ID
GROUP BY    t1.Descr,
            t1.Val

答案 1 :(得分:0)

请参阅此帖子关于Running Counts

答案 2 :(得分:0)

有不同的方法来计算运行总计。 This article on SQLTeam涵盖了它们,可以帮助您完成查询。代码示例很容易适应,所以我让你选择最适合你需求的那个。