====== MS SQL Reporting: In einer Matrix logisch sortieren ====== Werte in einer Mssql-Report-Matrix logisch zu Sortieren kann einen zum Wahnsinn treiben. In einer SQL-Abfrage richtig zu sortieren reicht nicht, da der Report nochmal "nacharbeitet", also die Reihenfolge versaut. Möchte ich etwa Mitarbeiter-Anwesenheitszahlen in einer Firma nach Früh-, Spät- und Nachtschicht sortieren, wird die Spätschicht nach Alphabet immer als letztes kommen. Oft hilft auch das Wirrwar der Sortierungen im Dataset, Report-Dataset und Spalten und Gesamtmatrix-Sortierungs-Wirrwar nicht weiter. Die Lösung kann sein, ein alpabetisches Element einzufügen, nach dem sortiert wird, innerhalb der Gruppe. SELECT COUNT(EmpId) AS EmpQty, (SELECT CASE D_SHIFT_TYPE.SHIFT_TYPE_ID WHEN 1 THEN 'a' WHEN 2 THEN 'b' WHEN 3 THEN 'c' ELSE '' END AS Expr1) AS X FROM EmpState Dann kann man zuverlässig sortieren. {{:dev:sql:mssort2.jpg?nolink|Sortieren}} Wichtig ist, dass nach dem zu sortierenden Kriterium auch zusätzlich gruppiert wird, sonst zeigt dieser "Trick" keinen Effekt. {{:dev:sql:mssort1.jpg?nolink|Sortieren}} Am Ende hat man einen Bericht, in dem die Schichten in der richtigen Reihenfolge sind.