you can do it in this way:-
Create a temp table that will have all the months between required dates and each record will have count=0
Then Have another Temp Table with available months and count
Apply left join to get required Data
WITH cte
AS (
SELECT
dt = DATEADD(DAY, -(DAY(@StartDate) - 1), @StartDate)
UNION ALL
SELECT
DATEADD(MONTH, 1, dt)
FROM
cte
WHERE
dt < DATEADD(DAY, -(DAY(@EndDate) - 1), @EndDate))
SELECT
CONVERT(char(3), dt, 100) + '/' + CONVERT(char(4), dt, 120) AS [month],
CAST(0 AS decimal) AS Eqcount
INTO
#AllMonthsData
FROM
cte;
SELECT
CONVERT(char(3), [Enquiry date], 100) + '/' + CONVERT(char(4), [Enquiry date], 120) AS [month],
COUNT(enqno) AS Eqcount
INTO
#AllAvailableEnquires
FROM
Enquiry e
WHERE
([Enquiry date] <= @StartDate)
AND ([Enquiry date] >= @EndDate)
GROUP BY
CONVERT(char(3), [Enquiry date], 100) + '/' + CONVERT(char(4), [Enquiry date], 120);
SELECT
AMD.month,
ISNULL(A.Eqcount,AMD.Eqcount) AS EqCount
FROM
#AllMonthsData AMD
LEFT JOIN #AllAvailableEnquires A ON AMD.month = A.month;
DROP TABLE #AllMonthsData;
DROP TABLE #AllAvailableEnquires;