T SQL如何使用:总和

时间:2017-12-13 12:56:32

标签: sql-server tsql sum procedure

表a

ID        |  BALANCE
100.01    |  0
100.01.01 |  156.00
100.01.02 |  155.12
100.02    |  0
100.02.01 |  45.40
100.02.02 |  44.40

程序

CREATE Procedure sp_Test (@startId varchar(120))
    AS
    SELECT a.Id,
           SUM(a.Balance),
       INTO #tempA
    FROM a
    GROUP BY a.Id
    GO
    SELECT b.Id
           ,SUM(b.Balance)
       INTO #tempB
    FROM a
    GROUP BY a.Id
    GO
    SELECT x.ID
           ,x.Name
           ,SUM(@tempA.Balance)
           ,SUM(@tempB.Balance)
    FROM a
       LEFT OUTER JOIN @tempA ON a.Id = @tempA.Id
       LEFT OUTER JOIN @tempB ON a.Id = @tempB.Id
    WHERE a.Id LIKE @startId + '.%'

我的英语不足以说明问题。 (翻译):( 我想做结果

exec sp_Test'100.01'

ID          Balance
100.01   |  311.12

exec sp_Test'100.02'

ID          Balance
100.02   |  89,8

1 个答案:

答案 0 :(得分:1)

将SUM()与GROUP BY一起使用

declare @startId as varchar(120);

SELECT  LEFT(a.ID, LEN(@startId)) as ID,
        SUM(a.BALANCE) as BALANCE
FROM    TableA a
WHERE   a.ID LIKE @startId + '%'
GROUP BY LEFT(a.ID, LEN(@startId))