日期:2014-05-16  浏览次数:20776 次

同列什的文本不能合并在一起
一部0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 NULL 苹果4代,苹果5代数据线各2
一部30 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 80 NULL 无线鼠标*1
二部0 0 30 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 NULL
三部0 0 0 0 0 0 340 1 0 0 0 0 0 0 0 0 0 0 0 NULL
四部0 0 0 0 0 0 0 0 0 0 0 0 0 0 45 1 0 0 0 NULL
二部0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 150 1 0 NULL
四部30 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 120 NULL 有线路由器8口*1
三部0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 30 NULL 打印数据线*1
按第一列相同的加在一起。我用GROUP BY。便最后一列是文本怎么弄。求大神
------解决方案--------------------
create?table?ym
(col1?int,?col2?int,?col3?varchar(3))

insert?into?ym
select?1,?1,?'A'?union?all
select?1,?1,?'B'?union?all
select?1,?2,?'C'?union?all
select?1,?3,?'D'?union?all
select?1,?3,?'E'


select?a.col1,a.col2,
stuff((select?','+col3?from?ym?b?
???????where?b.col1=a.col1?and?b.col2=a.col2?
???????for?xml?path('')),1,1,'')?'col3'
from?ym?a
group?by??a.col1,a.col2

你参考一下,自己改改吧
------解决方案--------------------
前面的数字列用SUM..

后面的文本列用合并字符串。

http://bbs.csdn.net/topics/230087434