Вы можете просто сделать это, удалив свою группу с помощью Creation_date
- Когда вы группируете это, вы берете все даты, которые отличаются друг от друга.
Примечание: предложение where было толькотоже покажу как можно это выразить.Я также исправил код, удалив )
после convert(date)
declare @table table (groupName nvarchar(50),create_date datetime,statusname nvarchar(50),ticket_number nvarchar(50))
insert into @table
Values
('Group A','2018-09-15','Status 1','A1'),
('Group B','2018-09-05','Status 3','A2'),
('Group C','2018-08-26','Status 5','A6'),
('Group C','2018-09-01','Status 4','A8'),
('Group B','2018-08-22','Status 2','A10'),
('Group C','2018-08-12','Status 3','A11'),
('Group A','2018-08-18','Status 5','A17'),
('Group B','2018-08-04','Status 5','A19'),
('Group C','2018-08-10','Status 4','A21'),
('Group A','2018-07-31','Status 2','A25'),
('Group B','2018-08-02','Status 1','A28'),
('Group C','2018-07-27','Status 3','A34'),
('Group A','2018-07-17','Status 2','A39'),
('Group B','2018-07-23','Status 4','A46'),
('Group C','2018-07-09','Status 2','A50'),
('Group C','2018-07-15','Status 3','A62'),
('Group B','2018-07-15','Status 5','A71'),
('Group C','2018-07-07','Status 5','A72'),
('Group A','2018-06-27','Status 4','B1'),
('Group A','2018-07-03','Status 2','B6')
SELECT
GROUPNAME,
sum(case when Statusname='status 1' then 1 else 0 end) as 'status 1',
sum(case when Statusname='status 2' then 1 else 0 end) as 'status 2',
sum(case when Statusname='status 3' then 1 else 0 end) as 'status 3',
sum(case when Statusname='status 4' then 1 else 0 end) as 'status 4',
sum(case when Statusname='status 5' then 1 else 0 end) as 'status 5',
count(ticket_number) as GRAND_TOTAL
FROM @table
WHERE convert(date,create_date,103) between '2018-07-07' and '2018-08-01'
GROUP BY GROUPNAME