Hi Ich habe Unpivot angewandt und auf meine Daten gedreht. Alles läuft gut, außer ich möchte meine Ausgabe in der gleichen Reihenfolge wie in der "IN" -Klausel von Unpivot angegeben anordnen. Bitte helfen Sie. Hier ist, was ich bisher getan haben:Wie man die Sortierreihenfolge von Unpivot manuell einstellt und in sql Server schwenkt
CREATE TABLE #myTable
(
[ForYear] [smallint] NOT NULL,
[ForMonth] [tinyint] NOT NULL,
[TrainingDoneThisMonth] [bit] NULL,
[FoodQualityStatus] [bit] NULL,
[NoOfAllDrugTests] [int] NULL,
[NoOfAllAlcoholTests] [int] NULL
)
INSERT INTO #myTable
values
(2016,1,1,0,5,10),
(2016,2,0,1,15,5),
(2016,3,1,0,20,15),
(2016,4,0,1,5,25),
(2016,5,1,0,10,30),
(2015,1,1,0,5,10),
(2015,2,0,1,15,5),
(2015,3,1,0,20,15),
(2015,4,0,1,5,25),
(2015,5,1,0,10,30)
select * from(SELECT *
FROM (
SELECT DATENAME(month,DATEADD(month,[ForMonth]-1,'1970-01-01')) as d,
CAST([TrainingDoneThisMonth] as int) as [TrainingDoneThisMonth],
CAST([FoodQualityStatus] as int) as [FoodQualityStatus],
[NoOfAllDrugTests],
[NoOfAllAlcoholTests]
FROM #myTable
WHERE foryear=2016
) d
UNPIVOT (
[VALUES] FOR [Objective] in ([TrainingDoneThisMonth],[FoodQualityStatus],[NoOfAllDrugTests],[NoOfAllAlcoholTests])
) unpvt
) as p
PIVOT (
SUM([VALUES]) FOR d IN ([January],[February],[March],[April],[May])
) as pvt
ich in dieser Reihenfolge führen müssen: [TrainingDoneThisMonth], [FoodQualityStatus], [NoOfAllDrugTests], [NoOfAllAlcoholTests]
Ich habe versucht: SQL Server , restrict UNPIVOT to order columns automatically aber unfähig, es zum Laufen zu bringen.
Versuchen Sie Ändern '* SELECT' in der meisten Top-Abfrage an Ihre Sortierreihenfolge. Es gibt nicht so viele Spalten zum Austippen. – Kramb