查询给我重复记录我想显示单个记录 [英] Query give me duplicate record I want to display single record

查看:92
本文介绍了查询给我重复记录我想显示单个记录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

1> PersonalDetail



ClientID(pk)

名称,



电子邮件



2> Skillmaster



Skillid(pk)

技能名号



3> EndUser

enduserid(pk)

userid(FK)// perosnaldeail clientid

FeesId(FK)



4> UserskillDetails

id(PK)

ClientId(FK)

SkillId(Fk)



我尝试过:



选择PersonalDetails.name,PersonalDetails.phone,PersonalDetails.email ,EndUser.Amount,SkillMaster.SkillName

来自PersonalDetails加入EndUser on PersonalDetails.ClientID = EndUser.UserId

加入Userskilldetail on Userskilldetail.clientId = PersonalDetails.ClientID

加入SkillMaster on SkillMaster.SkillID = Userskilldetail.Skillid







输出

1>PersonalDetail

ClientID (pk)
name,
surname
email

2> Skillmaster

Skillid(pk)
skillname

3> EndUser
enduserid(pk)
userid(FK) // perosnaldeail clientid
FeesId(FK)

4> UserskillDetails
id(PK)
ClientId (FK)
SkillId(Fk)

What I have tried:

select PersonalDetails.name,PersonalDetails.phone,PersonalDetails.email,EndUser.Amount,SkillMaster.SkillName
from PersonalDetails join EndUser on PersonalDetails.ClientID = EndUser.UserId
join Userskilldetail on Userskilldetail.clientId = PersonalDetails.ClientID
join SkillMaster on SkillMaster.SkillID = Userskilldetail.Skillid



output

jaydeep	444444	jay@gmail.com	34	mvc
jaydeep	444444	jay@gmail.com	34	jquery







i需要jaydeep作为一个记录,mvc和jquery在一行上用逗号




i requried jaydeep as a one record and mvc and jquery on one line with comma

jaydeep	444444	jay@gmail.com	34	mvc,jquery

推荐答案

Create table #temp(name varchar(50),phone int,email varchar(max),amount money, skillName varchar(10));

insert into #temp values('jaydeep',444444,'jay@gmail.com',34,'mvc'),
('jaydeep',444444,'jay@gmail.com',34,'jquery'),
('jaydeepshah',50,'jaydeepshah81@yahoo.com',	50,	'css'),
('jaydeepshah',50,'jaydeepshah81@yahoo.com',	50,	'sql');

SELECT DISTINCT name,phone,email,Amount,
STUFF((SELECT DISTINCT ', '+ SkillName 
FROM #temp as t1
WHERE T1.Name =t2.Name
FOR XML PATH(''),TYPE
).value('.','NVARCHAR(MAX)') ,1,2,'')AS SkillName 
FROM #temp t2;
------------------------------------------
name	phone	email	Amount	SkillName
------------------------------------------
jaydeep	444444	jay@gmail.com	34.00	jquery, mvc
jaydeepshah	50	jaydeepshah81@yahoo.com	50.00	css, sql

-------------------------------------------------------------------
;WITH X AS( 
SELECT 
      PersonalDetails.name, PersonalDetails.phone,
       PersonalDetails.email,EndUser.Amount,SkillMaster.SkillName 
 FROM PersonalDetails INNER JOIN EndUser 
     ON PersonalDetails.ClientID = EndUser.UserId
   INNER JOIN Userskilldetail ON Userskilldetail.clientId = PersonalDetails.ClientID
   INNER JOIN SkillMaster ON SkillMaster.SkillID = Userskilldetail.Skillid)
 
   SELECT DISTINCT name,phone,email,Amount,
        STUFF((SELECT DISTINCT ', '+SKL.SkillName 
             FROM X AS SKL WHERE SKL.Name=X.Name
                 FOR XML PATH(''),TYPE
                    ).value('.','NVARCHAR(MAX)') ,1,2,'')AS  SkillName 
   FROM X


这篇关于查询给我重复记录我想显示单个记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆