Сводная таблица 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
и т. д. (около 800 POINTNAME)
со многими точками, я не хочу перечислять каждый из них вВ' пункт разворотаЗА' (как синтаксис приведен ниже) определение, но хотел бы использовать, возможно, подзапрос.
Поэтому мне бы хотелось, чтобы все значения POINTNAME представляли собой столбцы с столбцом TIMESTAMP AND VALUE, поэтому я получу одно значение TIMESTAMP и множество столбцов с каждым POINTNAME; для каждого POINTNAME PERT TIMESTAMP существует только одно значение, поэтому я нене нужно ничего агрегировать, так что в любом случае просто выберите max?
Что-то вроде:
SELECT [TIMESTAMP] FROM ( SELECT * FROM POINT_TABLE)
PIVOT( Max[Value] FOR [POINTNAME] IN (SELECT DISTINCT [POINTNAME] FROM POINT_TABLE)
будет производить-
TIMESTAMP AHU01 AHU02
2012-10-10 16:00:00 20 25
2012-10-10 16:15:00 26 35
Я понимаю, что это, вероятно, не так просто, но, надеюсь, вы получите то, что яя пытаюсь достичь?
PIVOT SYNTAX:
SELECT ,
[first pivoted column] AS ,
[second pivoted column] AS ,
...
[last pivoted column] AS
FROM
()
AS
PIVOT
(
()
FOR
[]
IN ( [first pivoted column], [second pivoted column],
... [last pivoted column])
) AS
;