如何旋转一列以在一个单元格中显示数据?

Posted

技术标签:

【中文标题】如何旋转一列以在一个单元格中显示数据?【英文标题】:How to pivot one column to show the data in one cell? 【发布时间】:2016-04-12 22:32:23 【问题描述】:

我有这种形式的数据(同一个人的多个 AUTHCD)

PERSNBR AUTHCD  VALUE   File#   Payroll Name    Reports To File#    Reports To Name
3533    CSR2    5874    109605  Burnette, Peter M   105874  Vo, Timothy
3533    DOPS    5874    109605  Burnette, Peter M   105874  Vo, Timothy
3533    IT03    5874    109605  Burnette, Peter M   105874  Vo, Timothy
3533    LSUP    5874    109605  Burnette, Peter M   105874  Vo, Timothy
3533    OSUP    5874    109605  Burnette, Peter M   105874  Vo, Timothy

但我希望我的数据显示如下:

PERSNBR AUTHCD  VALUE   File#   Payroll Name    Reports To File#    Reports To Name
3533    CSR2, DOPS, IT03, LSUP  5874    109605  Burnette, Peter M   105874  Vo, Timothy

我希望 AUTHCD 列显示这样的原因是因为当我使用示例数据并创建 s-s-rS 报告时,它只显示第一个 AUTHCD 并删除其余部分,而我想要该员工的所有身份验证代码。 我应该用 s-s-rS 还是 sql 代码来做? 这是我的代码:

   select  pa.PERSNBR
            ,pa.AUTHCD
            ,pu.VALUE
            ,File#, [Payroll Name]
    ,       [Reports To File#], [Reports To Name]
    ,      [EMC #], [EMC Name]
    ,       1 as level
    from    
                            [DNA_Staging].[dbo].[PERSAUTH] pa
            join    [DNA_Staging].[dbo].[PERSEMPL] pe
                on  pa.PERSNBR = pe.PERSNBR
            join    [DNA_Staging].[dbo].[PERSUSERFIELD] pu
                on  pe.PERSNBR = pu.PERSNBR
                and pu.USERFIELDCD = 'EFNR'
                and GETDATE() < isnull(pe.inactivedate,getdate()+1)

     join       [HR_Staging].[dbo].[HR_EmployeeHierarchyStaging] emp

    on  pu.VALUE = substring(emp.[Reports To File#],2,6)
                or  pu.VALUE = substring(emp.[Reports To File#],3,6)

    where [Reports To File#] = @ReportToFile

提前致谢!

【问题讨论】:

【参考方案1】:

下面的堆栈溢出链接有类似的问题和答案。使用 CROSS APPLY,您需要先用逗号分隔列连接,然后使用 PIVOT。

Stack Overflow Link

【讨论】:

以上是关于如何旋转一列以在一个单元格中显示数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何查找单元格中是不是包含部分文本并引用另一列数据

怎样在一个单元格中显示出现次数

如何在 QtRuby 的第一列单元格中添加组合框?

如何在 OpenOffice 中将一列单元格从一张表插入到另一张表的单个单元格中?

如何在 MS Access 2010 中的单元格中显示空值

如何将excel单元格中一部分数据提取到另一单元格?