Laden...

Wie transformiere ich mehrere TSQL-Rows zu einer Row mit mehreren Columns?

Erstellt von roYaL-TS vor 8 Jahren Letzter Beitrag vor 8 Jahren 831 Views
R
roYaL-TS Themenstarter:in
53 Beiträge seit 2012
vor 8 Jahren
Wie transformiere ich mehrere TSQL-Rows zu einer Row mit mehreren Columns?

verwendetes Datenbanksystem: MS-SQL Server 2012

Hallo zusammen,

ich benötige für einen Report die Transformation von Zeilen zu Spalten. Ich habe mir dazu bereits einige Beispiel im Internet angeschaut, allerdings Zielen die Meist darauf aus 2 Tabellen zu einer zu vereinen bzw. eine dieser Tabellen mit den Informationen anzureichern.

Kurz zu meiner Tabelle. Diese liefert mir folgende Spalten

Id | MaterialsTabId | MdmMaterialId | GlobalCode | Supplier | MaterialDescription | QuantityOld | QuantityNew | PricePerUnitOld | PricePerUnitNew | TotalOld | TotalNew

Definiert ist, das immer die ersten 10 Rows genommen werden, somit ergibt für mich eine fest definiertes (hier verkürztes) Select-Statement mit

SELECT Id1, MaterialsTabId1, MdmMaterialId1, ... Id2, MaterialsTabId2, MdmMaterialId2, .. Id3, MaterialsTabId3, MdmMaterialId3 ... FROM ....

Gibt es da einen Weg das zu lösen ohne für jede Spalte eigene pivot-Funktion schreiben zu müssen? Ist es außerdem möglich Leerzeilen (also für den Fall, dass es nur vier Results gibt) mit leeren Einträgen zu füllen, sodass der Report sich in der Struktur nicht verändert?

Ich hoffe es kam verständlich rüber was meine Problematik ist und jemand weiß einen Rat dafür.

Soweit schon mal einen Gruß und Dank
roYaL-TS

“Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live”
 John Woods

5.299 Beiträge seit 2008
vor 8 Jahren

was verwendest du denn als Report-Technologie?
Ich kenne es so, dass man den Report an eine DataTable hängt - das hat eiglich mit der DB garnix zu tun.

Die DataTable kann man sich dann aufbauen wie wolle, und auch nach belieben befüllen.

Der frühe Apfel fängt den Wurm.

R
roYaL-TS Themenstarter:in
53 Beiträge seit 2012
vor 8 Jahren

Hi,

danke für die Antwort.

Ich nutze die DataToolsanbinung in Visual Studio um über die SSRS die Reports zu generieren.

Mir ist klar das ich die Datatables dort aufbauen kann, allerdings benötige ich eine View mit dem Result welche den Report (und weitere Komponenten) füllt.

Ich habe allerdings nun einen Ansatz gefunden der zu funktionieren scheint.

Und zwar setze ich eine temporäre Tabelle auf und lass eine Id hochzählen. Anschließend left joine ich auf die eigene Tabelle und dem festen Wert für die Id.

Gruß

roYaL-TS

“Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live”
 John Woods