Ich habe eine Prozedur, die den Pivot unterhalb generiert (siehe Ausgabe) basierend auf Parameter übergeben.Wie kann ich eine geschachtelte Prozedur als SQL-Abfrage aufgerufen werden?
Ich möchte in der Lage sein, Spalten zwischen den Jahren einzufügen, wie ich in der erwarteten Ausgabe zeige, die 100 zu den geschwenkten Werten in dieser neuen Spalte hinzufügen wird.
Gibt es eine Möglichkeit, einen Pivot-Prozess als Abfrage aufzurufen, sodass ich diese Berechnungen über Select Query hinzufügen kann? Oder gibt es einen leichteren Weg?
create table t1
(
date int,
unita int,
unitb int,
unitc int
)
insert into t1 values (2010, 335, 52, 540)
insert into t1 values (2011, 384, 70, 556)
insert into t1 values (2012, 145, 54, 345)
select *
from
(
select date, value, unit
from
(
select *
from t1
) x
unpivot ([value] for unit in ([unita], [unitb], [unitc])) u
) a
pivot
(
sum(value)
for date in ([2010], [2011], [2012])
) p
OUTPUT:
unit 2010 2011 2012
----------------------
unita 335 384 145
unitb 52 70 54
unitc 540 556 345
ERWARTETES ERGEBNIS:
unit 2010 2010a 2011 2011a 2012
-----------------------------------
unita 335 435 384 485 145
unitb 52 150 70 170 54
unitc 540 640 556 656 345
Was bestimmt, wie viele Spalten Sie hinzufügen müssen? – DhruvJoshi