SQL Server:将父行值显示为父列为列

时间:2018-01-31 11:30:27

标签: sql-server pivot

我有以下表格:

  • 主人:身份证,说明
  • 儿童1:ParentID,条形码
  • Child 2:ParentID,Group

Child 1Child 2可以为ParentID设置多个值。

我想只显示一个包含所有链接子值的父行。

示例:

ID Description Barcode1 Barcode2 Barcode3 Barcode 4 Barcode 5 Group1 Group2 Group3 Group 4 Group 5

因此,每个子表的前5个值都链接到parentID

根据我读到的内容,我不能使用PIVOT,因为我只在两个子表中都有一个值而没有标识符。

这可以在SQL Server视图中完成吗?

1 个答案:

答案 0 :(得分:0)

试试这个

SELECT M.ID, 
       M.DESCRIPTION, 
       ( 
              SELECT BARCODE + ' ' 
              FROM   [Child1] C 
              WHERE  C.PARENTID = M.ID FOR XML PATH('')) AS BARCODE, 
       ( 
              SELECT [GROUP] + ' ' 
              FROM   [Child2] C 
              WHERE  C.PARENTID = M.ID FOR XML PATH('')) AS GROUPS 
FROM   [Master] M