CREATE TABLE [dbo].[Table_1](
[ID] [nchar](10) NULL,
[a] [int] NULL,
[DocNo] [nchar](10) NULL,
[num] [int] NULL
) ON [PRIMARY]
insert into table_1
select 1,177,101,5
union all select 2,178,102,5
union all select 3,177,103,5
union all select 4,179,104,5
union all select 5,179,105,5
语句如上。
然后查询以下语句
select SUM(num) as SUM_num,a FROM table_1
group by a
得到的结果是
SUM_num a
10 177
5 178
10 179
我同在要实现如下界面的数据结果?就是字段a中177 这个累加的sum_num=10是由列Docno=101和103累加得到的,而a=178只有一个就是他自己的102,同样a=179也同样由104和105累加,那我要添加一个列名ccc把101,103 添加到这个字段中。好做备注。请教如何实现?谢谢。
SUM_num a 列名ccc
10 177 101,103
5 178 102
10 179 104,105
sql
------解决方案--------------------
select SUM(num) as SUM_num,a ,
ccc=STUFF((SELECT ',' + RTRIM(DocNo) FROM dbo.table_1 b WHERE b.a=a.a FOR XML PATH('')),1,1,'')
FROM table_1 a
group by a
/*
SUM_num a ccc
10 177 101,103
5 178 102
10 179 104,105
*/
------解决方案--------------------
select sum(x.num) 'SUM_num',
x.a,
stuff((select ','+rtrim(y.DocNo)