Skip to content

Instantly share code, notes, and snippets.

@mizrael
Created February 13, 2015 14:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mizrael/930250f0c792ff54fdc8 to your computer and use it in GitHub Desktop.
Save mizrael/930250f0c792ff54fdc8 to your computer and use it in GitHub Desktop.
SQL - customer orders by month
DECLARE @sql NVARCHAR(max), @selects NVARCHAR(max)
SET @sql = 'SELECT ';
SET @selects = '';
SELECT @selects = COALESCE(@selects + ', ', '') + ' (SELECT COUNT(DISTINCT O.OrderID)
FROM Orders O
WHERE O.CustomerID = C.CustomerID
AND O.OrderDate BETWEEN ''' + convert(NVARCHAR(MAX), [start_date], 102) +
''' AND ''' + convert(NVARCHAR(MAX), [end_date], 102) + ''' ) AS [' + [date_text] + ']' + CHAR(13)
FROM #dates ;
SET @sql = 'SELECT C.ContactName ' + @selects +
' FROM Customers C';
print @sql
EXECUTE sp_executesql @sql
@mizrael
Copy link
Author

mizrael commented Feb 13, 2015

Use this https://gist.github.com/mizrael/c44e575008f5ab98994f to generate the #dates table

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment