MSSQL Gruppenverknüpfung Hinzufügen von Spalten als Agroup von

Tabellenstruktur

Item, Group, Min Qty, Price A, 1, 10, 1.00 A, 2, 10, 0.75 B, 1, 20, 0.90 C, 3, 5, 5.00 

Sql Abfrage Ich laufe derzeit, was für alle Gruppen in 1 Spalte funktioniert, ich versuche zu erarbeiten, wie ich eine Spalte für jede Gruppe hinzufügen und nur die Werte aus dieser Gruppe nur setzen.

 SELECT [Item], STUFF(( SELECT ', ' + CAST([Min Qty] AS VARCHAR(MAX)) + ':' + CAST([Price] AS VARCHAR(MAX) + ';') FROM [Table] WHERE ([Item No_] = Results.[Item] and [Minimum Qty] > '1') FOR XML PATH(''),TYPE ).value('.','VARCHAR(MAX)') ,1,2,'') as Values FROM [Table] Results GROUP BY [Item] 

Aktueller Output

 Item, Values A, 10:0.75; 10:1.00; B, 20:0.90; C, 5:5.00; 

Erforderliche Ausgabe

 Item, Group 1, Group 2, Group 3 A, 10:1.00; 10:0.75; B, 20:0.90; C, 5:5.00; 

Vielen Dank für die Eingabe

Bearbeiten von unten

Wir kennen nicht alle Spaltennamen, wie sie von anderen Benutzern zum System hinzugefügt werden, also muss man die Spalten automatisch hinzufügen, sollte auch alle Einträge für diese Gruppe / Element in 1 Spalte gruppieren, da ich versuche, eine zu produzieren Ausgabedatei

Tabelleninformationen

 Item, Group, Min Qty, Price A, 1, 10, 1.00 A, 2, 10, 0.75 B, 1, 20, 0.90 C, 3, 5, 5.00 A, 1, 20, 0.50 Item, Group 1, Group 2, Group 3 A, 10:1.00;20:0.50; 10:0.75; B, 20:0.90; C, 5:5.00; 

 declare @t table (Item Varchar(2),Groups Varchar(2),MInqty varchar(10),Price Money) insert into @t (Item,Groups,MInqty,Price)values ('A,','1,',10,1.00), ('A,','2,',10,0.75), ('B,','1,',20,0.90), ('C,','3,',5,5.00) select Item,[1,] AS [Groups 1],[2,] AS [Groups 2],[3,] AS [Groups 3] from ( select Item,Groups,MInqty +':'+ CAST(price AS VARCHAR) + ';' As GRP from @t)P PIVOT (MIN(GRP) FOR GROUPS IN ([1,],[2,],[3,]))PVT 

Remodifizierte Antwortprüfung

 Select Item,[1] AS [Groups 1],[2] AS [Groups 2],[3] AS [Groups 3] from ( Select P.Item,MIN(R)G,P.Value from ( SELECT [Item],SUBSTRING(Groups,0,CHARINDEX(',',Groups))R, STUFF(( SELECT ', ' + CAST([MInqty] AS VARCHAR(MAX)) + ':' + CAST([Price] AS VARCHAR(MAX) )+';'As Grp FROM #t WHERE ([Item] = Results.[Item] and [MInqty] > '1') FOR XML PATH(''),TYPE ).value('.','VARCHAR(MAX)') ,1,2,'') as Value FROM #t Results GROUP BY Groups,Item)P GROUP BY P.Item,p.Value)PP PIVOT (MIN(Value)FOR G IN ([1],[2],[3]) )PVT