MS-SQL-Server-pivot-Tabelle mit Unterabfrage in column-Klausel

Ich bin sicher, dies ist eine einfache Technik, aber ich kann nicht finden, eine Antwort bisher!

Habe ich

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

etc... ( ca 800 POINTNAMES)

mit vielen pointnames ich will keine Liste jeweils in die " IN " - Klausel der pivot 'FÜR'
(wie syntax, die unten gegeben) definition würde es aber gerne verwenden, vielleicht mit einer Unterabfrage.

Also was ich möchte ist, alle POINTNAME Werte als Spalten mit EINEM TIMESTAMP UND WERT-Spalte, so bekomme ich einen TIMESTAMP-Wert und viele Spalten mit jeweils POINTNAME, es gibt nur einen Wert pro POINTNAME PRO TIMESTAMP, also brauche ich nicht zu aggregieren nichts, so wählen Sie einfach die max überhaupt?

Etwas wie:

SELECT [TIMESTAMP] FROM ( SELECT * FROM POINT_TABLE)
PIVOT( Max[Value] FOR [POINTNAME] IN (SELECT DISTINCT [POINTNAME] FROM POINT_TABLE)

produzieren würde-

   TIMESTAMP              AHU01          AHU02
 2012-10-10 16:00:00        20             25
 2012-10-10 16:15:00        26             35

Ich begreife, dass es wohl keine dieses einfache, aber hoffentlich bekommen Sie das, was ich versuche zu erreichen?

PIVOT-SYNTAX:

SELECT <non-pivoted column>,
    [first pivoted column] AS <column name>,
    [second pivoted column] AS <column name>,
    ...
    [last pivoted column] AS <column name>
FROM
    (<SELECT query that produces the data>) 
    AS <alias for the source query>
PIVOT
(
    <aggregation function>(<column being aggregated>)
FOR 
[<column that contains the values that will become column headers>] 
    IN ( [first pivoted column], [second pivoted column],
    ... [last pivoted column])
) AS <alias for the pivot table>
<optional ORDER BY clause>;
  • Sie shift-Taste scheint kaputt zu sein. Zufällige Wörter werden großgeschrieben, aus irgendeinem Grund.
InformationsquelleAutor user1801843 | 2012-11-06
Schreibe einen Kommentar