sql server 2016-按天将整数列转换为行

oymdgrw7  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(365)

我需要将数据日期中的一列转置为一行字符串,并按其他两列分组。我的示例数据由以下数据组成:

我需要这样的结果:

这是每天每个员工代码一行的所有LN。
我试过下面的代码-

DECLARE @Process_Conditions_Loans VARCHAR(500)

SELECT
    t1.EmplCode,
    t1.LogDate,
    @Process_Conditions_Loans = CONCAT(COALESCE(@Process_Conditions_Loans + ',', ''),PS2)
FROM
    #temp t1
WHERE
    LN IS NOT NULL 
GROUP BY
    EmplCode, LogDate

但我犯了个错误
为变量赋值的select语句不能与数据检索操作结合使用。
我不能用 group_concat 因为我使用的是sql server 2016。
任何帮助都将不胜感激。
谢谢,jh

pkbketx9

pkbketx91#

可以使用较旧的字符串聚合形式:

select emplcode, logdate,
       stuff( (select concat(', ', ln)
               from t
               where t.emplcode = el.emplcode and t.logdate = el.logdate
               order by ln
               for xml path ('')
              ), 1, 2, ''
            )
from (select distinct emplcode, logdate
      from t
     ) el

相关问题