Try this oneSELECT a.City, MAX(CASE WHEN t.colID = 1 THEN t.Country ELSE NULL END) AS Country1, MAX(CASE WHEN t.colID = 2 THEN t.Country ELSE NULL END) AS Country2FROM @Ag AS aOUTER APPLY ( SELECT TOP 2 x.Country, ROW_NUMBER() OVER (ORDER BY COUNT(*) DESC) AS colID FROM @Table2 AS x WHERE x.DateTaken >= '20090801' AND x.SendCity = a.City GROUP BY Country ORDER BY COUNT(*) DESC ) AS tWHERE a.[Status] = 'A'GROUP BY a.CityORDER BY a.City
N 56°04'39.26"E 12°55'05.63"