You can use the PIVOT operator. If you are going to have data for more than one year, you should also add a year column.SELECT * FROM(SELECT COUNT(*) AS totals, CAST(MONTH(T_Order_Main.Shipdate) AS varchar(100)) AS M, T_Customer.countryFROM T_Order_Main INNER JOIN T_Customer ON T_Order_Main.CustomerID = T_Customer.CustomerIDWHERE (T_Order_Main.Orderstatus = 8) AND T_Order_Main.Shipdate >= '20120101' and T_Order_Main.Shipdate < '20130101'GROUP BY MONTH(T_Order_Main.Shipdate), T_Customer.country)sPIVOT (MAX(Totals) for M in ([1],[2],[3],[4],[5],[6],[7],[8 ],[9],[10],[11],[12])) PORDER BY country