在子查询中处理多个值

时间:2013-09-12 06:13:56

标签: sql

我有两个表,其中一个表包含员工信息,另一个表包含从属信息。我想创建一个查询,该查询检索每个雇员子女的所有名字,并将它们合并到结果的一个字段中。

我知道如何创建一个子查询,该子查询将一个结果作为另一个查询中的字段返回,但没有任何运气可以解决这个问题。任何建议都将不胜感激。

表:tblPersonnel,由[ID] primary [sponsorID] foriegn链接的tblFamilyData

期望的输出:

EmployeeName | Address | KidName1, KidName2, KidName3

3 个答案:

答案 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;