2011-01-12 6 views
2

ich folgende TSQL geschrieben habe in einem Bericht zu verwenden:Sorting Matrix Berichtsspalten in bestimmten Reihenfolge

SELECT  patcnty, CASE WHEN CAST(age_yrs AS int) <= '5' THEN 'Ages 5 and Younger' WHEN CAST(age_yrs AS int) BETWEEN '6' AND 
        '17' THEN 'Ages 6 to 17' WHEN CAST(age_yrs AS int) BETWEEN '18' AND '44' THEN 'Ages 18 to 44' WHEN CAST(age_yrs AS int) BETWEEN '45' AND 
        '64' THEN 'Ages 45 to 64' WHEN CAST(age_yrs AS int) >= '65' THEN 'Ages 65 and Older' END AS AgeGroup, 
        CASE WHEN patcnty = '54' THEN 'Tulare' WHEN patcnty = '16' THEN 'Kings' WHEN patcnty = '15' THEN 'Kern' WHEN patcnty = '10' THEN 'Fresno' END 
        AS County, oshpd_id, age_yrs 
FROM   OSHPD2009 
WHERE  (patcnty IN ('10', '15', '16', '54')) AND (age_yrs <> ' ') 

ich einen SSRS 2005 Matrix Bericht erstellt haben, und haben als meine Altersklasse Spalte und Kreis angeordnet, wie meine Reihe. Wenn der Bericht angezeigt wird, lautet die Reihenfolge der Spalten: Alter 18 bis 44, Alter 45 bis 64, Alter 5 und jünger, Alter 6 bis 17 und Alter 65 und älter. Dies macht Sinn, indem ich die Sortierreihenfolge für die Gruppe aufsteigend einstelle.

Wie kann ich die Gruppe Sortierreihenfolge für die Matrix Spalt ändere auf diese Weise zu sortieren: Alter 5 und jünger, Alter 6 bis 17, im Alter von 18 bis 44, Alter von 45 bis 64 und Alter 65 und älter?

Vielen Dank für Ihre Hilfe!

Antwort

3

Nach ein wenig Graben entschied ich, dass SSRS in welcher Reihenfolge die Gruppen sortiert werden musste. So wird in der Spalte Gruppierung sortieren Bildschirm, habe ich einen Ausdruck von

=iif(Fields!AgeGroup.Value="Ages 5 and Younger","1", 
iif(Fields!AgeGroup.Value="Ages 6 to 17","2", 
iif(Fields!AgeGroup.Value="Ages 18 to 44","3", 
iif(Fields!AgeGroup.Value="Ages 45 to 64","4", 
iif(Fields!AgeGroup.Value="Ages 65 and Older","5","Other"))))) 

Diese im Grunde SSRS zwingt die Gruppen in der Reihenfolge zu sortieren angegebenem von Ages 5 und Jüngere einen Wert von 1 zuweisen, so dass es die erste ist Sortiergruppe usw. Mein Bericht funktioniert jetzt wie ein Zauber!

2

Oder Sie können Ihre Quellentabelle so ändern, dass sie eine neue Spalte für die AGe_Group-Reihenfolge enthält. Und auf der SSRS können Sie die Sortierung basierend auf der neuen Spaltenreihenfolge durchführen. Zur Verdeutlichung:

Newcolumn int 

Set NewColumn = 1 
where AgeGroup = "Ages 5 and Younger" 

Set NewColumn = 2 
where AgeGroup = ="Ages 6 to 17" 

Set NewColumn = 3 
where AgeGroup = Ages 18 to 44"