Code miteinander verknüpften

IchHH

Datenbank-Guru
Beiträge
291
Hallo,

wie kann ich durch diesen Code ermittelten Spaltennamen inkl. alle seiner Werte plus die Spalte Kontenarten und die Spalten (Kontenart und tmp) aus der Tabelle 'tmp' zusammenführen um dann den zweiten Code auszuführen zu können?

Code 1
Code:
select Top 1  column_name, ordinal_position
from information_schema.columns where table_name = 'S_92620'
order by ordinal_position desc

Code 2
Code:
SET     @tabelle = 'tmp3'
SET     @ordinal = ( SELECT max(ORDINAL_POSITION) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @tabelle )
SET     @letzte_spalte = ( SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @tabelle AND ORDINAL_POSITION = @ordinal )
SET     @vorletzte_spalte = ( SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @tabelle AND ORDINAL_POSITION = @ordinal - 1 )
SET @query3 = 'UPDATE [' + @tabelle + '] SET tmp = isnull([' + @letzte_spalte + '],0) + isnull([' + @vorletzte_spalte + '],0)'

EXEC(@query3)
 
Werbung:
hier mein erster Ansatz

Code:
Declare @Spalte varchar(1000),
        @query Varchar(1000)

Set @spalte = (select Top 1  column_name, ordinal_position
from information_schema.columns where table_name = 'S_92620'
order by ordinal_position desc)

Set @query = 'Select Kontenart, tmp, [' + @spalte + '] FROM         dbo.tmp INNER JOIN
                      [DOM1\20-DIAS].S_92620 ON [DOM1\20-DIAS].[tmp].Kontenart = [DOM1\20-DIAS].S_92620.Kontenart'
EXEC(@query)

Die Fehlermeldung lautet nur dann leider:

Nur ein einziger Ausdruck kann in der Auswahlliste angegeben werden, wenn die Unterabfrage nicht mit EXISTS eingeleitet wird.

Verstehen tue ich es aber nicht.

Würde ein Ergebnis rauskommen müsste eigentlich nur noch Code 2 angewendet werden.
 
Zurück
Oben