SELECT Country.Country, product.Code, SUM(sales_1.quantity) AS [QTY 2009], SUM(sales.quantity) AS [QTY 2010], SUM(sales.quantity - sales_1.quantity) AS [Ecart 2009-2010], AVG(sales_1.quantity) AS [moy 2009], AVG(sales.quantity) AS [moy 2010], cast (100* CAST ( SUM(sales_1.quantity) AS decimal(10,2)) / (select sum(sales.quantity) from sales where (sales.[year] = 2010)) AS decimal(10,2)) AS [pourcent 2009], cast (100* CAST ( SUM(sales.quantity) AS decimal(10,2)) / (select sum(sales.quantity) from sales where (sales.[year] = 2009)) AS decimal(10,2)) AS [pourcent 2010] FROM Country INNER JOIN sales ON Country.id = sales.country_id INNER JOIN product ON sales.product_id = product.id INNER JOIN sales sales_1 ON product.id sales_1.product_id AND Country.id sales_1.country_id WHERE (sales.[year] = 2010) AND (sales_1.[year] = 2009) GROUP BY Country.Country, product.Code, product.id ORDER BY Country.Country, product.Code
SELECT Country.Country, product.Code, SUM(sales_1.quantity) AS [QTY 2009], SUM(sales.quantity) AS [QTY 2010], SUM(sales.quantity - sales_1.quantity) AS [Ecart 2009-2010], AVG(sales_1.quantity) AS [moy 2009], AVG(sales.quantity) AS [moy 2010], cast (100* CAST ( SUM(sales_1.quantity) AS decimal(10,2)) / (select sum(sales.quantity) from sales where (sales.[year] = 2009)) AS decimal(10,2)) AS [pourcent 2009], cast (100* CAST ( SUM(sales.quantity) AS decimal(10,2)) / (select sum(sales.quantity) from sales where (sales.[year] = 2010)) AS decimal(10,2)) AS [pourcent 2010] FROM Country INNER JOIN sales ON Country.id = sales.country_id INNER JOIN product ON sales.product_id = product.id INNER JOIN sales sales_1 ON product.id sales_1.product_id AND Country.id sales_1.country_id WHERE (sales.[year] = 2010) AND (sales_1.[year] = 2009) GROUP BY Country.Country, product.Code, product.id ORDER BY Country.Country, product.Code