小编use*_*843的帖子

带有子查询的MS SQL Server数据透视表

我确定这是一个简单的技术,虽然我到目前为止找不到答案!

我有

TIMESTAMP           | POINTNAME | VALUE
2012-10-10 16:00:00   AHU01       20
2012-10-10 16:00:00   AHU02       25
2012-10-10 16:00:15   AHU01       26
2012-10-10 16:00:15   AHU02       35
Run Code Online (Sandbox Code Playgroud)

等......(大约800个POINTNAMES)

有很多点名我不想在每个枢轴'FOR'的'IN'子句中列出(如下面给出的语法)定义,但是想使用子查询.

所以我想要的是将所有POINTNAME值作为具有A TIMESTAMP和VALUE列的列,因此我将获得一个TIMESTAMP值和每个POINTNAME的多个列,每个POINTNAME PER TIMESTAMP只有一个值,所以我不需要聚合什么,所以只要选择最大值?

就像是:

SELECT [TIMESTAMP] FROM ( SELECT * FROM POINT_TABLE)
PIVOT( Max[Value] FOR [POINTNAME] IN (SELECT DISTINCT [POINTNAME] FROM POINT_TABLE)
Run Code Online (Sandbox Code Playgroud)

会产生 -

   TIMESTAMP              AHU01          AHU02
 2012-10-10 16:00:00        20             25
 2012-10-10 16:15:00        26             35
Run Code Online (Sandbox Code Playgroud)

我意识到这可能不是这么简单,但希望你得到我想要实现的目标?

PIVOT语法:

SELECT <non-pivoted column>,
    [first pivoted column] AS <column name>,
    [second pivoted column] AS <column name>,
    ...
    [last …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server pivot subquery

10
推荐指数
1
解决办法
2万
查看次数

标签 统计

pivot ×1

sql ×1

sql-server ×1

subquery ×1

t-sql ×1