我有两个表,其中一个表包含员工信息,另一个表包含从属信息。我想创建一个查询,该查询检索每个雇员子女的所有名字,并将它们合并到结果的一个字段中。
我知道如何创建一个子查询,该子查询将一个结果作为另一个查询中的字段返回,但没有任何运气可以解决这个问题。任何建议都将不胜感激。
表:tblPersonnel,由[ID] primary [sponsorID] foriegn链接的tblFamilyData
期望的输出:
EmployeeName | Address | KidName1, KidName2, KidName3
答案 0 :(得分:0)
select EmployeeName,Address,(select STUFF((select ',' + firstname+ '' from tblFamilyData ts
where a.ID=ts.SponsorID for xml path(''), type).value('.', 'varchar(max)'), 1, 1, '')) as KidName from tblPersonnel a
此查询从一个表中选择名称和地址,然后使用第一个表id从第二个表中获取数据并使用xml连接值。
答案 1 :(得分:0)
SELECT EmployeeName, Address,
(Select KidName + ','
From tblFamilyData K
Where K.EmployeeID = P.EmployeeID
For XML PATH ('')) AS kids
FROM tblPersonnel P
我不确定您的确切列是什么,因为您没有指定完整的架构,但这是概念..
答案 2 :(得分:-1)
Select tblPersonnel.EmployeeName, tblPersonnel.Address, tblFamilyData.KidName from tblPersonnel, tblFamilyData where tblPersonnel.ID = tblFamilyData.sponsorID;