我有两张表,其中一张保存员工信息,另一张保存家属信息。我想创建一个查询来检索每个员工孩子的所有名字并将它们组合到结果的一个字段中。
我知道如何创建一个子查询,该子查询将单个结果作为另一个查询中的字段返回,但没有任何运气可以解决这个问题。任何建议将不胜感激。
表:tblPersonnel、tblFamilyData 由 [ID] 主 [sponsorID] 外部链接
期望的输出:
员工姓名 | 地址 | KidName1,KidName2,KidName3
我有两张表,其中一张保存员工信息,另一张保存家属信息。我想创建一个查询来检索每个员工孩子的所有名字并将它们组合到结果的一个字段中。
我知道如何创建一个子查询,该子查询将单个结果作为另一个查询中的字段返回,但没有任何运气可以解决这个问题。任何建议将不胜感激。
表:tblPersonnel、tblFamilyData 由 [ID] 主 [sponsorID] 外部链接
期望的输出:
员工姓名 | 地址 | KidName1,KidName2,KidName3
SELECT EmployeeName, Address,
(Select KidName + ','
From tblFamilyData K
Where K.EmployeeID = P.EmployeeID
For XML PATH ('')) AS kids
FROM tblPersonnel P
我不确定您的确切列是什么,因为您没有指定完整的架构,但这是概念..
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 连接值。
Select tblPersonnel.EmployeeName, tblPersonnel.Address, tblFamilyData.KidName from tblPersonnel, tblFamilyData where tblPersonnel.ID = tblFamilyData.sponsorID;