我的查询数据透视表遇到一些问题:
SELECT *
FROM
(
SELECT [usuario],
[codtrab],
[tna],
[hora],
[tipo],
[fecha]
FROM prueba
) AS SourceTable PIVOT(AVG([tna]) FOR [tipo] IN([entrada], [salida])) AS PivotTable
这将返回一个表格
usuario | codtrab | hora fecha entrada salida
name1 | 600 | 08:02:00.0000000 2019-05-17 0 NULL
name1 | 600 | 16:02:00.0000000 2019-05-17 NULL 1
name2 | 200 | 08:10:00.0000000 2019-05-17 0 NULL
name2 | 200 | 16:10:00.0000000 2019-05-17 NULL 1
name3 | 400 | 08:20:00.0000000 2019-05-17 0 NULL
name3 | 400 | 16:20:00.0000000 2019-05-17 NULL 1
我想将数据显示到这样的表格中:
usuario codtrab hora fecha entrada salida
name1 600 08:02:00.0000000 2019-05-17 0 1
name2 200 08:10:00.0000000 2019-05-17 0 1
name3 400 08:20:00.0000000 2019-05-17 0 1
最佳答案
从选择中删除列 [hora] 后可以尝试吗?由于此列具有多个名称(例如“Name1”)值,因此我认为这会创建双行。
SELECT *
FROM
(
SELECT [usuario],
[codtrab],
[tna],
--[hora],
[tipo],
[fecha]
FROM prueba
) AS SourceTable
PIVOT(AVG([tna]) FOR [tipo] IN([entrada], [salida])) AS PivotTable
关于sql-server - 我需要在查询中加入行(透视),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56331705/