您好朋友我正在尝试用列标题中的日期转换行数据 这是我的sql AttenanceData表
普通表 Original Data
我想将行日期转换成这样的列标题
有人可以告诉我如何在sql中做到这一点
我可以肯定地使用枢轴
所以我尝试了sql查询来实现
<modules>
<module>module1</module>
<module>module2</module>
<module>module3</module>
<module>module4</module>
<module>module5</module>
<module>module6</module>
</modules>
答案 0 :(得分:0)
我尝试使用动态数据透视表
用于生成数据的示例脚本:
create table #a
(
entrprise_id varchar(50),
datee date,
attendance varchar(10)
)
insert into #a values
('james','2018-12-22','p'),
('james','2018-12-23','p'),
('pick','2018-12-23','p'),
('rick','2018-12-23','p'),
('pick','2018-12-22','p'),
('rick','2018-12-22','p')
PIVOT查询:
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX);
SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(c.datee)
FROM #a c
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = 'SELECT entrprise_id, ' + @cols + ' from
(
select*
from #A
) x
pivot
(
max(attendance)
for datee in (' + @cols + ')
) p '
execute(@query)
或
select *
from
(
select *
from #A
) src
pivot
(
max(attendance)
for datee in ([2018-12-22], [2018-12-23])
) piv