Daten aus Prozedur in Temp-Tabelle schreiben

02/04/2009 - 13:55 von rk10059 | Report spam
Hallo Newsgroup

Ich habe auf "http://www.itrain.de/knowhow/sql/tsql/pivot/
sp_transform_v1_1.asp"
eine Prozedut gefunden, mittels der man aus Daten eine Kreuztabelle
erzeugen kann.

Funktioniert übrigens sehr gut.
Dazu allerdings eine Frage:
Wie kann man das Ergebnis dieser Prozedur in eine Tabelle schreiben?

Wenn man die Tabelle vorab erstellt funktioniert es.

CREATE TABLE [dbo].[#tmp](
[Kostenstelle] [varchar](10) NULL,
[2005] [int] NULL,
[2006] [int] NULL,
[2007] [int] NULL,
[2008] [int] NULL,
[2009] [int] NULL,
[Total] [int] NULL
) ON [PRIMARY]

insert into #tmp
EXEC sp_Transform1 @Aggregate_Column='Anz_MA',
@TableOrView_Name='tmp_ma',
@Select_Column='Kostenstelle',
@Pivot_Column='Jahr'

Das hat allerdings den Nachteil, dass ich genau wissen muss, wie viele
Jahre in der Daten enthalten sind - ist also nicht sonderlich
flexibel.

Das Statement funkt leider nicht:
EXEC sp_Transform1 @Aggregate_Column='Anz_MA',
@TableOrView_Name='tmp_ma',
@Select_Column='Kostenstelle',
@Pivot_Column='Jahr'
into #tmp

Hat jemand eine Idee, wie man das lösen könnte?

Herzlichen Dank im Voraus für Eure Hilfe.

Kiepetz Rudolf
 

Lesen sie die antworten

#1 Martin Wendel
02/04/2009 - 19:21 | Warnen spam
Hi,
Keine Ahnung wo da das Problem liegen soll ;-)
Endlich mal was ich auch weis :-)

hier mal ein Beispiel:
SELECT Firmenname, [W880i] AS W880, [W890] AS W890, [K770i] AS K770
INTO T_Temp FROM
(SELECT T_Handy_Hersteller.Firmenname, T_Handy_Modelle.ModellName,
T_Handy_Modelle.HBild
FROM T_Handy_Hersteller INNER JOIN
T_Handy_Modelle ON T_Handy_Hersteller.HID =
T_Handy_Modelle.HID) p
PIVOT
(
COUNT (HBild)
FOR ModellName IN
( [W880i], [W890], [K770i] )
) AS pvt
ORDER BY Firmenname

Select * from T_Temp


Hoffe das wolltest du, vergiss nicht bei temporàren Tabellen diese auch
wieder zu löschen

thx
Martin Wendel


"rk10059" wrote:

Hallo Newsgroup

Ich habe auf "http://www.itrain.de/knowhow/sql/tsql/pivot/
sp_transform_v1_1.asp"
eine Prozedut gefunden, mittels der man aus Daten eine Kreuztabelle
erzeugen kann.

Funktioniert übrigens sehr gut.
Dazu allerdings eine Frage:
Wie kann man das Ergebnis dieser Prozedur in eine Tabelle schreiben?

Wenn man die Tabelle vorab erstellt funktioniert es.

CREATE TABLE [dbo].[#tmp](
[Kostenstelle] [varchar](10) NULL,
[2005] [int] NULL,
[2006] [int] NULL,
[2007] [int] NULL,
[2008] [int] NULL,
[2009] [int] NULL,
[Total] [int] NULL
) ON [PRIMARY]

insert into #tmp
EXEC sp_Transform1 @Aggregate_Column='Anz_MA',
@TableOrView_Name='tmp_ma',
@Select_Column='Kostenstelle',
@Pivot_Column='Jahr'

Das hat allerdings den Nachteil, dass ich genau wissen muss, wie viele
Jahre in der Daten enthalten sind - ist also nicht sonderlich
flexibel.

Das Statement funkt leider nicht:
EXEC sp_Transform1 @Aggregate_Column='Anz_MA',
@TableOrView_Name='tmp_ma',
@Select_Column='Kostenstelle',
@Pivot_Column='Jahr'
into #tmp

Hat jemand eine Idee, wie man das lösen könnte?

Herzlichen Dank im Voraus für Eure Hilfe.

Kiepetz Rudolf


Ähnliche fragen