I got what I wanted but now I also want it by year.
Here is the code below
;WITH MonthCTE(m) AS
(SELECT 1 m
UNION ALL
SELECT m+1
FROM monthCTE
WHERE m < 12
)
SELECT m[Month]
,t.*
FROM MonthCTE
CROSS Apply
(
SELECT TOP 20
YEAR(ah.enrllmnt_prcssd_dt) [Year]
,p.code
,p.full_name
,CAST(SUM(CASE
WHEN e.payment_type = 1 THEN e.cash / 100
ELSE (1.00 * IsNull(e.installment, 0)
/ 100.00 * IsNull(e.payment_months, 0)) + (1.00 *
IsNull(e.deposit,
0) / 100.00)
END) AS decimal) AS Gev
FROM enrollment AS e
INNER JOIN action_history AS ah
ON ah.action_history_id = e.action_history_id
INNER JOIN product AS p
ON p.product_id = e.product_id
WHERE (
month(ah.enrllmnt_prcssd_dt) BETWEEN 1 AND 12
)
AND (ah.enrllmnt_prcssd_dt >= '2010-01-01' )
AND (ah.enrllmnt_prcssd_dt < '2011-01-01' )--AND (p.code IN (@Prod_code) )
AND (e.status = 2 )
AND (e.brand_id IN (2) )
GROUP BY
YEAR(ah.enrllmnt_prcssd_dt)
,--month(ah.enrllmnt_prcssd_dt),
p.code
,p.full_name
ORDER BY
--YEAR(ah.enrllmnt_prcssd_dt),
--month(ah.enrllmnt_prcssd_dt),
Gev
DESC
) t