日期:2014-05-17  浏览次数:20639 次

求助一个MERGE的问题

MERGE INTO [GROUP_MEMBER] AS A
USING @MEMBER_TABLE AS B
ON (A.[CUSTOMER_ID]=B.[CUSTOMER_ID] AND A.[GROUP_ID]=@GROUP_ID)
WHEN NOT MATCHED 
THEN INSERT([CUSTOMER_ID],[GROUP_ID]) VALUES(B.[CUSTOMER_ID],@GROUP_ID)
WHEN NOT MATCHED BY SOURCE
THEN DELETE;


同步两个表的时候 @GROUP_ID是组ID,@MEMBER_TABLE是客户ID表,CUSTOMER_ID是客户ID  
我想把[GROUP_MEMBER]和@MEMBER_TABLE表的数据同步
但这样写似乎A.[GROUP_ID]=@GROUP_ID没有起到作用
也就是并没有按 组ID来匹配 请问要如何解决



------解决方案--------------------
引用:
NAME         GNAME
ZS           分组1
LS           分组1 
WW           分组1
ZS           分组2
LS           分组2
ZS           分组3
WW           分组3

这样的数据怎么查询成 
ZS    分组1,分组2,分组3
LS    分组1,分组2
WW    分组1,分组3

/*
工单号    操作者
a1       张三
a1       王二 
a1       李四

现在要得到查询结果:
工单号    操作者
a1       张三、王二、李四
*/

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[test1]') AND type in (N'U'))
DROP TABLE [dbo].[test1]
GO

CREATE TABLE [dbo].[test1](
工单号 [varchar](10) NOT NULL,
操作者 [varchar](10) NOT NULL
) ON [PRIMARY]

GO

INSERT [test1]
VALUES ('a1','张三'),('a1','王二'),('a1','李四')

select 工单号,
操作者=stuff((select '、'+操作者
        from test1