Wie kann ich für eine Spalte mit Daten drehen, die MONTH als Parameter ist?PIVOT mit ausgewählten MONTH()
Beispiel:
Daten:
|-----------------------------------|
| def_kstnr | def_zeit | def_datum |
|-----------------------------------|
| 100 | 3.2 | 2011-11-02 |
| 110 | 2.8 | 2011-02-03 |
| 120 | 5.4 | 2011-11-04 |
| 130 | 2.4 | 2011-08-05 |
| 140 | 4.9 | 2011-09-06 |
| 150 | 1.5 | 2011-10-07 |
| 160 | 2.6 | 2011-12-08 |
|-----------------------------------|
Abfrage:
SELECT
def_kstnr,
[1] AS Jan,
[2] AS Feb,
[3] AS Mrz,
[4] AS Apr,
[5] AS Mai,
[6] AS Jun,
[7] AS Jul,
[8] AS Aug,
[9] AS Sep,
[10] AS Okt,
[11] AS Nov,
[12] AS Dez
FROM
(Select
def_kstnr,
def_zeit,
MONTH(def_datum) as TMonth
from
dbo.def) source
PIVOT
(
SUM(def_zeit)
FOR TMonth
IN ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12])
) AS pvtMonth
Ergebnis sollte wie folgt aussehen, wenn der Parameter Monat = 2 (Februar):
91.363.210| def_kstnr | Feb |
110 2.8
und wenn der Parameter Monat = 11 (November)
| def_kstnr | Nov |
100 3.2
ich googeln schon, aber ich weiß nicht, was das Schlüsselwort für diesen meinen Fall ist. Ich habe es noch nicht gefunden. Danke ..
Sie müssten dynamische SQL verwenden - jede bestimmte Abfrage erzeugt immer eine Ergebnismenge mit einer festen "Form" - die Anzahl der Spalten, ihre * Namen * und Typen. Andererseits ist das Ändern einer Spaltenüberschrift innerhalb einer * Anwendung * oder eines * Berichts * in der Regel trivial - muss dies in * SQL * getan werden? –
Was ist Ihr RDBMS? –