例如:
ID Age
1 20
1 30
2 10
3 50
3 20
我想的到的效果
ID Age
1
1 50
2 10
3
3 70
------解决方案--------------------
----------------------------------------------------------------
-- Author :DBA_HuangZJ(发粪涂墙)
-- Date :2014-05-15 15:10:25
-- Version:
-- Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64)
-- Apr 2 2010 15:48:46
-- Copyright (c) Microsoft Corporation
-- Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)
--
----------------------------------------------------------------
--> 测试数据[huang]
if object_id('[huang]') is not null drop table [huang]
go
create table [huang]([ID] int,[Age] int)
insert [huang]
select 1,20 union all
select 1,30 union all
select 2,10 union all
select 3,50 union all
select 3,20
--------------生成数据--------------------------
SELECT id,CASE WHEN id2<>1 THEN '' ELSE CAST(age AS VARCHAR(10)) END age
FROM (
SELECT ID,(SELECT SUM(age) FROM huang WHERE id=a.id)age,ROW_NUMBER()OVER(PARTITION BY id ORDER BY id) id2
from [huang] a)a
----------------结果----------------------------
/*
id age
----------- ----------
1 50
1
2 10
3 70
3
*/