表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
答案 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))