ich eine Tabelle mit mehreren Zeilen pro Artikelnummer haben alsoTrans Zeilen in Spalten
Itemno Component Fabric Fabric %
------ --------- ------ --------
1 Back Cotton 100
1 Face Viscose 67
1 Face Nylon 27
1 Face Elastane 6
2 Main Cotton 100
3 Back Nylon 50
3 Back Viscose 50
3 Face Cotton 100
Ich möchte diese pro Artikelnummer in einer Zeile zu transformieren, um die Komponente verketten, Stoff & Stoff% Spalten in einer neuen Spalte . Dies wäre mit PIVOT einfach, aber die zusätzliche Komplikation ist, dass ich die Komponentenspalte nicht wiederholen möchte, wenn zwei gleich sind.
EDIT - vergessen zu erwähnen, wenn es mehrere Stoffe gibt, möchte ich, dass sie vom größten zum kleinsten geordnet sind.
das obige Beispiel ist die Ausgabe ich will, ist:
Itemno Composition
------ -----------
1 Back 100% Cotton, Face 67% Viscose, 27% Nylon, 6% Elastane
2 Main 100% Cotton
3 Back 50% Nylon, 50% Viscose, Face 100% Cotton
Vielen Dank im Voraus!
EDIT - Ich verwende Microsoft SQL Server 2012!
Ich würde annehmen, dass Sie STUFF verwenden, um die begrenzte Liste zu erzeugen? Überspringen Sie einfach die Komponente in diesem Teil und verketten Sie die Komponente an den Anfang der Liste mit Trennzeichen. –
Sie brauchen eine Kombination von ** listagg (..) ** Funktion – Frank
@Frank das ist mit sql Server getaggt, Listagg ist für Oracle, wenn ich mich richtig erinnere. –