SELECT T0.C0, T0.C1, T0.C2, T1.C2, T1.C2 - T0.C2, CASE WHEN T0.C2 = 0 OR T0.C2 IS NULL THEN 1 WHEN T1.C2 IS NULL OR T1.C2 = 0 THEN -1 ELSE (T1.C2 - T0.C2) / T0.C2 END FROM ( SELECT DISTINCT "TRAVELAGENCY"."AGENCYTYPE" AS C0, "TRAVELAGENCY"."ISOCODE" AS C1, SUM("ATHLETEFACT"."INVOICEDAMOUNT") AS C2 FROM "ATHLETEFACT" INNER JOIN "TRAVELAGENCY" ON ( "ATHLETEFACT"."AGENCYID" = "TRAVELAGENCY"."AGENCYID" ) INNER JOIN "DATELOOKUP" ON ( "ATHLETEFACT"."INVOICEDDATE" = "DATELOOKUP"."DAYDATE" ) WHERE ( "DATELOOKUP"."CALENDARYEAR" = 2013 ) GROUP BY "TRAVELAGENCY"."AGENCYTYPE", "TRAVELAGENCY"."ISOCODE" ) T0 LEFT OUTER JOIN ( SELECT DISTINCT "TRAVELAGENCY"."ISOCODE" AS C0, "TRAVELAGENCY"."AGENCYTYPE" AS C1, SUM("ATHLETEFACT"."INVOICEDAMOUNT") AS C2 FROM "ATHLETEFACT" INNER JOIN "TRAVELAGENCY" ON ( "ATHLETEFACT"."AGENCYID" = "TRAVELAGENCY"."AGENCYID" ) INNER JOIN "DATELOOKUP" ON ( "ATHLETEFACT"."INVOICEDDATE" = "DATELOOKUP"."DAYDATE" ) WHERE ( "DATELOOKUP"."CALENDARYEAR" = 2014 ) GROUP BY "TRAVELAGENCY"."AGENCYTYPE", "TRAVELAGENCY"."ISOCODE" ) T1 ON T0.C1 = T1.C0 AND T0.C0 = T1.C1