sql-server - 我需要在查询中加入行(透视)

标签 sql-server

我的查询数据透视表遇到一些问题:

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/

相关文章:

c# - 每个 HTTP 请求多少个 SQL 查询是最佳的?

sql-server - "NOT"什么时候不是否定?

mysql - SQL 数据透视转换 : How to order

sql - 如何以每条记录都与 "previous"记录连接的方式自连接表?

sql-server - 跨连接列的全文搜索?

c# - 关闭 SQL 连接但打开的连接不断增加

sql-server - 如何返回最接近零的值

sql-server - 以其他语言显示月份名称

sql-server - 如何获取 SQL 查询返回的表的大小(以字节为单位)?

sql - 使用 native 客户端驱动程序从 Delphi 代码创建触发器