AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Tabelle transponieren

Ein Thema von API · begonnen am 9. Feb 2016 · letzter Beitrag vom 9. Feb 2016
Antwort Antwort
API

Registriert seit: 18. Apr 2004
637 Beiträge
 
#1

Tabelle transponieren

  Alt 9. Feb 2016, 10:25
Datenbank: MS SQL Server • Version: 2008 • Zugriff über: SSMS
Hoin,

Eine Tabelle (Table1) ist wie folgt aufgebaut. Die Werte in der Saplte "ID" und "FIELD_NAME" sind unique, d.h. kommen nicht mehrfach vor.

ID FIELD_NAME
1732 Field_1
1749 Field_2
1750 Field_3
1768 Field_4
1769 Field_5
1771 Field_6
1778 Field_7

Nun brauche ich eine Abfrage, welche die Tabelle transponiert:


Field_1 Field_2 Field_3 Field_4 Field_5 Field_6 Field_7
1732 1749 1750 1768 1769 1771 1778

Wie kann ich das umsetzen?
  Mit Zitat antworten Zitat
Benutzerbild von frankyboy1974
frankyboy1974

Registriert seit: 7. Apr 2015
Ort: SH
169 Beiträge
 
Delphi XE7 Professional
 
#2

AW: Tabelle transponieren

  Alt 9. Feb 2016, 10:37
hallo,

schau mal hier

https://technet.microsoft.com/de-de/...ql.105%29.aspx

mfg
Java ist auch eine Insel.
Ist Delphi von Oracle?
In meiner Buchstabensuppen fehlt das C++!
  Mit Zitat antworten Zitat
API

Registriert seit: 18. Apr 2004
637 Beiträge
 
#3

AW: Tabelle transponieren

  Alt 9. Feb 2016, 10:54
Danke für den Link. Verstehe jedoch nicht ganz, was hier angegeben werden soll, da ja nichts aggregiert werden soll

Zitat:
<Aggregationsfunktion>(<Spalte, die aggregiert wird>)
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#4

AW: Tabelle transponieren

  Alt 9. Feb 2016, 11:02
Pivot erledigt die Transformation, ich glaub es muss kein Aggregat sein.
Wenn doch, nimm halt eins, das nicht weh tut, also nichts macht in dem Fall.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von frankyboy1974
frankyboy1974

Registriert seit: 7. Apr 2015
Ort: SH
169 Beiträge
 
Delphi XE7 Professional
 
#5

AW: Tabelle transponieren

  Alt 9. Feb 2016, 11:02
hallo,

ich habs jetzt nicht ausprobiert, aber

Zitat:
indem die eindeutigen Werte einer Spalte des Ausdrucks in mehrere Spalten der Ausgabe versetzt werden und dabei gegebenenfalls Aggregationen für verbliebene Spaltenwerte erfolgen,
mfg
Java ist auch eine Insel.
Ist Delphi von Oracle?
In meiner Buchstabensuppen fehlt das C++!
  Mit Zitat antworten Zitat
Benutzerbild von rapante
rapante

Registriert seit: 3. Jun 2009
Ort: OPR
171 Beiträge
 
Delphi XE2 Professional
 
#6

AW: Tabelle transponieren

  Alt 9. Feb 2016, 11:04
Das könnte hilfreich sein (Dynamic Pivot Version): http://stackoverflow.com/questions/1...nd-rows-in-sql
  Mit Zitat antworten Zitat
API

Registriert seit: 18. Apr 2004
637 Beiträge
 
#7

AW: Tabelle transponieren

  Alt 9. Feb 2016, 11:23
So scheint es zu funktionieren. Jedoch muss man, IMO, bei PIVOT ein Aggregat angeben.

Code:
DECLARE @cols AS NVARCHAR(MAX),
    @query AS NVARCHAR(MAX)

select @cols = STUFF((SELECT distinct ',' + QUOTENAME(FIELD_NAME)
                    from Table1

            FOR XML PATH(''), TYPE
            ).value('.', 'NVARCHAR(MAX)')
        ,1,1,'')

set @query = 'SELECT ' + @cols + '
             from
             (
                select FIELD_NAME, ID
                from Table1
         
            ) x
            pivot
            (
                max(ID)
                for FIELD_NAME in (' + @cols + ')
            ) p '

execute(@query)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz