你看看有什麼問題吧~@@
declare @CM table(
CONF_NO varchar(3)
,PROJ_NO varchar(50)
,Dates date
,Locations nvarchar(50)
)
insert into @CM
values('001','A','2018/10/1','南投')
,('002','A','2018/10/2','南投')
,('003','A,B','2018/10/3','新竹')
,('004','A','2018/10/4','台中')
declare @PM table(
PROJ_NO varchar(50)
,Users nvarchar(50)
)
insert into @PM
values('A','甲,乙,丙')
,('B','甲,丁')
declare @EM table(
EM_Users nvarchar(50)
,EM_Sort int
)
insert into @EM
values('甲',1)
,('乙',2)
,('丙',3)
,('丁',4)
select *
,stuff((
select ',' + EM_Users
from @EM
left join @PM as b on Charindex(',' + EM_Users + ',',',' + b.Users + ',') > 0
where Charindex(',' + b.PROJ_NO + ',',',' + a.PROJ_NO + ',') > 0
group by EM_Users,EM_Sort
order by EM_Sort
for xml path('')
),1,1,'') Users
from @CM as a
多增加一個存員工資料表來記錄吧~
建議把CM中的,CONF_NO = 003
的PROJ_NO由A,B
改為C
。
再在PM中新增 INSERT INTO PM (PROJ_NO, USERS) VALUES ('C', '甲,乙,丙,丁');
然後就可以用
SELECT CM.*, PM.USERS
FROM CM LEFT JOIN PM ON CM.PROJ_NO = PM.PROJ_NO
就可以撈資料了。