Skip to content

Instantly share code, notes, and snippets.

@drewgriffith15
Last active August 29, 2015 14:13
Show Gist options
  • Select an option

  • Save drewgriffith15/6a96fd028a9c2d7fc57b to your computer and use it in GitHub Desktop.

Select an option

Save drewgriffith15/6a96fd028a9c2d7fc57b to your computer and use it in GitHub Desktop.
A Different Way to Sort Based on Parameters in SSRS
USE AdventureWorks2012
DECLARE @DefaultSort VARCHAR(max) = 'SalesPerson' -- SSRS parameter
DECLARE @tblSales AS TABLE (
SalesPersonID INT,
SalesOrderID INT,
SalesYear VARCHAR(4)
);
BEGIN
INSERT INTO @tblSales
SELECT SalesPersonID,
SalesOrderID,
YEAR(OrderDate) AS SalesYear
FROM Sales.SalesOrderHeader
WHERE SalesPersonID IS NOT NULL
SELECT tbl.*,
ROW_NUMBER() OVER (
ORDER BY CASE WHEN @DefaultSort = 'SalesPerson' THEN SalesPersonID END,
CASE WHEN @DefaultSort = 'Sales' THEN TotalSales END,
CASE WHEN @DefaultSort = 'Year' THEN SalesYear END,
CASE WHEN @DefaultSort NOT IN ('SalesPerson', 'Sales', 'Year') THEN SalesPersonID END -- DEFAULT TO (ELSE)
) AS RowNumber
FROM (
SELECT SalesPersonID,
COUNT(SalesOrderID) AS TotalSales,
SalesYear
FROM @tblSales
GROUP BY SalesPersonID,
SalesYear
) tbl
ORDER BY RowNumber
END
GO
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment