This is a query that produces a table with garbage data, but (I think) will get the point across of what I need. SQL Server 2008
Create Table SanitationGarbage ( saleid int ,projectname varchar(200) ,typeofsale varchar(200) ) Insert Into SanitationGarbage VALUES (1, 'May Rich', 'Final'), (2, 'May Rich', 'Final'), (3, 'May Rich', 'Pending') ,(4, 'April Rich', 'Final'), (5, 'April Rich', 'Pending'), (6, 'April Rich', 'Pending') ,(7, 'May Frank', 'Pending'), (8, 'May Frank', 'Final'), (9, 'May Frank', 'Pending') ,(10, 'April Frank', 'Final'), (11, 'April Frank', 'Final'), (12, 'May Arm', 'Final') ,(13, 'May Arm', 'Pending')
Now my select query below does not group the data like I need it to, nor does it show a total row like I need it to. How does this need to be written so the data is displayed in the proper formatting?
Select projectname ,Count(saleID) As [Total Sales] ,Count(case when typeofsale = 'Final' then saleID else null end) As [Final Sales] ,Count(case when typeofsale = 'Pending' then saleID else null end) As [Pending Sales] FROM SanitationGarbage GROUP BY projectname order by projectname asc
Which provides the below output
projectname Total Sales Final Sales Pending Sales April Frank 2 2 0 April Rich 3 1 2 May Arm 2 1 1 May Frank 3 1 2 May Rich 3 2 1
And this is my desired output
projectname | Total Sales | Final Sales | Pending Sales |
May Arm | 2 | 1 | 1 |
Arm Totals | 2 | 1 | 1 |
April Frank | 2 | 2 | 0 |
May Frank | 3 | 1 | 2 |
Frank Totals | 5 | 3 | 2 |
April Rich | 3 | 1 | 2 |
May Rich | 3 | 2 | 1 |
Rich Totals | 6 | 3 | 3 |