Ich habe folgende Tabelle:Ausgewählte Zeile Spalte
aber muß folgendes Ergebnis wählen, auch Hinweis sein, dass Gegenstände nicht behoben werden !!
Ich habe folgende Tabelle:Ausgewählte Zeile Spalte
aber muß folgendes Ergebnis wählen, auch Hinweis sein, dass Gegenstände nicht behoben werden !!
Eine Lösung, weiterhin N:
select distinct f1.parentfk, f2.Quantity , f3.Quantity, f4.Quantity, f5.Quantity
from mytable f1
left outer join mytable f2 on f1.parentfk=f2.parentfk and f2.itemfk=1
left outer join mytable f3 on f1.parentfk=f3.parentfk and f3.itemfk=2
left outer join mytable f4 on f1.parentfk=f4.parentfk and f4.itemfk=3
left outer join mytable f5 on f1.parentfk=f5.parentfk and f5.itemfk=4
Oder versuchen, diese dynamische Abfrage:
DECLARE @columns NVARCHAR(MAX), @sql NVARCHAR(MAX);
SET @columns = N'';
SELECT @columns += N', p.' + QUOTENAME(itemfk) FROM (SELECT distinct f2.itemfk FROM Mytable f2) AS x;
SET @sql = N'
SELECT j.ParentFk, ' + STUFF(@columns, 1, 2, '') + '
FROM
(
SELECT ParentFk, Quantity, itemfk FROM Mytable
) AS j
PIVOT
(
Sum(Quantity) FOR itemfk IN ('
+ STUFF(REPLACE(@columns, ', p.[', ',['), 1, 1, '')
+ ')
) AS p;';
PRINT @sql;
EXEC sp_executesql @sql;
aber es ist nicht angegeben, wie viele N-Spalte es wäre ?? !! und 1,2,3,4 nicht behoben !! – MahdiIBM
Nein, aber Sie können eine große Anzahl von Abfragen verwenden. Wenn Sie die Pivot-Anweisung verwenden, müssen Sie eine Spalte angeben. Dann, außer wenn Sie eine dynamische Abfrage erstellen (in Speicherprozedur von Beispiel), habe ich keine bessere Lösung !! ?? Kann andere Person gefunden werden – Esperento57
ein Beispiel für dynamische Abfrage https://www.mssqltips.com/sqlservertip/2783/script-to-create-dynamic-pivot-queries-in-sql-server/ – Esperento57
Alles, was Sie brauchen, ist ein [Pivot] (https: // www. codeproject.com/Tips/500811/Simple-Way-To-Use-Pivot-In-SQL-Query) – PacoDePaco