sql - SQL Server 2016 - 将整数列转置为逐日行
问题描述
我需要将数据日期中的一列转换为一行字符串并按另外两列分组。我的样本数据由以下数据组成:
我需要结果看起来像这样:
这是每天每个员工代码一行中的所有逻辑节点。
我尝试了以下代码 -
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
解决方案
您可以使用旧形式的字符串聚合:
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
推荐阅读
- emv - EMV 非接触式书籍 C4 中的 EMV 标签 9F6E 支持的接触模式是什么
- git - 如果从 master 中删除文件,如何将文件保留在分支中?
- java - 哪个 MongoDB 聚合管道更好 - [$match, $project, $group] 或 [$project, $match, $group]
- java - QuickFixJ FIXT.1.1:向彭博发送 MarketPriceIncrementalRefresh
- tensorflow - 值错误:预测方法中的不兼容层
- reactjs - 删除材料ui芯片输入中的元素时出现问题
- .net - 停止子控件使父控件无效
- python - 对于 pandas 数据框中的列标签或标签组合,使用 python for 循环获取这些列标签中具有“X”值的交易名称
- javascript - 我正在编写一个不和谐的机器人并得到“UnhandledPromiseRejectionWarning:TypeError:无法读取属性'split' of null”
- unix - awk - 打印排序文件中的最后一组