SQL中怎样把同一张表中相同字段的内容合并为一条记录?

请教 大神,如何写语句,非常感谢!
两张表名:Linkman 和Customer
Customer_ID 有重复数字合并成一条,然后Linkman 和Customer合并,主要就是看客户和联系人能对应起来。
因为两张表他们是通过Custom_ID 对应的,因为一个客户可能有2-3个联系人
所以这张表Customer_ID才会有重复数字,谢谢!

不知我理解的对不对:

SELECT Customer_ID,Customer_Name,STUFF((SELECT ','+Linkman_Name FROM Linkman WHERE Customer_ID=Customer.Customer_ID FOR XML PATH('')),1,1,'') Linkman_Name
  FROM Customer

追问

运行错误

追答

你的环境是什么,我写的语句环境为SQL Server

追问

环境是SQL 2000

追答

语句你是不是改了一下?

追问

我是复制粘贴的

追答DECLARE @T TABLE(Customer_Name VARCHAR(50),Linkman_Name VARCHAR(5000))
DECLARE @A VARCHAR(100)
DECLARE KH CURSOR FOR SELECT Customer_ID,Customer_Name FROM Customer
OPEN KH
DECLARE @KHH INT,@KHM VARCHAR(100)
FETCH NEXT FROM KH INTO @KHH,@KHM
WHILE @@FETCH_STATUS=0
    BEGIN
        SET @A=''
        SELECT @A=@A+','+Linkman_Name FROM Linkman WHERE Customer_ID=@KHH
        INSERT INTO @T VALUES(@KHM,STUFF(@A,1,1,''))
        FETCH NEXT FROM KH INTO @KHH,@KHM
    END
CLOSE KH
DEALLOCATE KH
SELECT * FROM @T

追问

刚才试过了,可以的,但是联系人是用逗号分开的,
请问可以把下面的字段在加进来来吗?联系人后面加电话 部门 手机 和邮件。
Linkman_UnitPhone
Linkman_Fax
Linkman_Email
Linkman_Handset
Linkman_Dept

追答

以为一个客户对应多个联系人,如果每个联系人放在一列,后面的列数不确定,所以只能放在一列,逗号隔开.
再问一下,你加的Linkman_UnitPhone
Linkman_Fax
Linkman_Email
Linkman_Handset
Linkman_Dept
是联系人的吗?每个联系人都要加吗?

温馨提示:内容为网友见解,仅供参考
无其他回答

sql中怎样把同一张表中相同字段的内容合并为一条记录?并统计数量
12SELECT Customer_ID,Customer_Name,STUFF((SELECT ','+Linkman_Name FROM Linkman WHERE Customer_ID=Customer.Customer_ID FOR XML

sql中怎样把同一张表中相同字段的内容合并为一条记录?
--sql 2000可以用函数哦 create FUNCTION udf_pin(@客户id INT )RETURNS VARCHAR(100)AS BEGIN DECLARE @s VARCHAR(100)SELECT @s=isnull(@s+',','')+rtrim(购买产品ID) FROM tb WHERE 客户id=@客户id RETURN @s END;GO SELECT 客户id,dbo.udf_pin(客户id) AS 购买产品ID FROM tb GRO...

SQL中怎样把同一张表中相同字段的内容合并为一条记录?
SELECT Customer_ID,Customer_Name,STUFF((SELECT ','+Linkman_Name FROM Linkman WHERE Customer_ID=Customer.Customer_ID FOR XML PATH('')),1,1,'') Linkman_Name FROM Customer

sql查询中怎么将两条内容相同的记录显示成一条
sql查询中两条内容相同的记录显示成一条可以用group by语句或distinct语句来实现。如,test表中有如下数据:group by的方法:select id,name from test group by id,name;查询结果:distinct的方法:select distinct id,name from test;查询结果:...

SQL如何将同一记录的多个字段的值合并到一个字符串中,然後再跟别的SQL...
可以用连接符号 || 或者& 我的是Oracle || 可以 select date||depart||name from A union all select date||note from B

...字段如何对查询结果进行操作将id相同的合并为一条数据
建表 create table class(classid int,classname varchar(10),teacherid int)insert into class values (1,'一班',1)insert into class values (1,'一班',2)insert into class values (2,'三班',1)create table teacher(teacherid int,teachername varchar(10))insert into teacher values (1...

如何把SQL中同一表的三条记录合并为一条?SQL语句怎么写?
declare @set varchar(8000)SELECT @set=isnull(@set,'')+名称+'\/' from Name select substring(@set,0,len(@set)-1)--- 中国\/云南省\/保山市\/腾冲 根据自己的业务情况再加where 条件

sql一对多的时候,把相同行的数据合并成一行,类似excel合并单元格的...
select SUM([需要求和的字段名称]) from [要求和的表名]

SQL如何将某一列中相同的数据合并
SELECT GROUP_CONCAT( 字段名 ) FROM 表名 并将该字段 在WHERE条件下 GROUP BY

sql数据库中,如何将一个表中的多列数字合并为一列
一般情况下,我们将由不同栏位获得的资料串连在一起,每一种资料库都有提供方法来达到这个目的:MySQL: CONCAT()Oracle: CONCAT(), || SQL Server: + 其实对于非程序员,可以利用excel或是access搞定。在excel表格中就可以实现:D1=concatenate(a1,b1,c1);或是 D1= A1&B1&C1。在access中,D...

相似回答