Create a table variable with the full set of months, and populate with the twelve options.
Then use left join to get what you want.
Something like:
declare @Months table ( Month varchar(3))
insert into @Months values ('Jan'), ('Feb'), ('Mar'), ....
select M.Month, count(*)
from @Months M
left join ....
Updated 6-Jan-20 2:57am
v2
You may wish to create a table with all of the month/year/count combos you expect - then update that with your results. You may wish to initialize the count field of the table w/zeros.
Another option, more generalized, would employ a single list of Jan - Dec (1-12) and you may then use a LEFT JOIN to your query, matching only the month's numeric values: good for only one year at a time, but always good.
When creating the return set from the LEFT-JOIN option, you may use ISNULL(your-count-column, 0) to replace the nulls from missing months with 0's
select [month],[count] from (SELECT
SUM (CASE WHEN DATEPART (MONTH,RR.checkin) = 1 THEN 1 ELSE 0 END) 'Jan',
SUM (CASE WHEN DATEPART (MONTH,RR.checkin) = 2 THEN 1 ELSE 0 END) 'Feb',
SUM (CASE WHEN DATEPART (MONTH,RR.checkin) = 3 THEN 1 ELSE 0 END) 'Mar',
SUM (CASE WHEN DATEPART (MONTH,RR.checkin) = 4 THEN 1 ELSE 0 END) 'Apr',
SUM (CASE WHEN DATEPART (MONTH,RR.checkin) = 5 THEN 1 ELSE 0 END) 'May',
SUM (CASE WHEN DATEPART (MONTH,RR.checkin) = 6 THEN 1 ELSE 0 END) 'Jun',
SUM (CASE WHEN DATEPART (MONTH,RR.checkin) = 7 THEN 1 ELSE 0 END) 'Jul',
SUM (CASE WHEN DATEPART (MONTH,RR.checkin) = 8 THEN 1 ELSE 0 END) 'Aug',
SUM (CASE WHEN DATEPART (MONTH,RR.checkin) = 9 THEN 1 ELSE 0 END) 'Sep',
SUM (CASE WHEN DATEPART (MONTH,RR.checkin) = 10 THEN 1 ELSE 0 END) 'Oct',
SUM (CASE WHEN DATEPART (MONTH,RR.checkin) = 11 THEN 1 ELSE 0 END) 'Nov',
SUM (CASE WHEN DATEPART (MONTH,RR.checkin) = 12 THEN 1 ELSE 0 END) 'Dec'
FROM Orders RR WITH(NOLOCK)
WHERE YEAR(RR.checkin)= 2020) tb1
UNPIVOT (
count for [month] in (Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec)
) unpvt