Declare @Status table(statusid int , statusname varchar(50))
Insert into @Status values(1,'Active'),(2,'Inactive'),(3,'Underdecision')
Declare @User table(username varchar(10),countryid int, statusid int)
Insert into @User values
('user1',1,1),('user2',1,2),('user3',1,3),
('user4',5,1),('user5',5,1),('user6',5,2),('user7',5,2),('user8',5,2)
;with cte as(
Select s.statusid,s.statusname, cnt = COUNT(u.statusid)
from @User u
inner join @Status s
on u.statusid = s.statusid
where countryid =5
group by s.statusid,s.statusname)
select statusname,cnt from cte
union
select statusname,0 from @Status where statusid not in (select statusid from cte)
output
statusname cnt
Active 2
Inactive 3
Underdecision 0
Best Regards,
Niladri Biswas
Sahoo, if this helps please login to Mark As Answer. | Alert Moderator