Steve Jones - SSC Editor (4/24/2015)
I'd crosstab it more like this:
SELECT customers.name,
SUM( case when year(date) = 2014 then unitprice*qt else 0 end) AS total_2014,
SUM( case when year(date) = 2015 then unitprice*qt else 0 end) AS total_2015,
FROM Products
INNER JOIN Orders ON Orders.id = Products.idOrder
INNER JOIN Customers ON Customers.id = Orders.idCustomer
GROUP BY customers.name
or if you want to be more generic:
SELECT customers.name,
SUM( case when year(date) = year(get_date())-1 then unitprice*qt else 0 end) AS total_PreviousYear,
SUM( case when year(date) = year(get_date()) then unitprice*qt else 0 end) AS total_CurrentYear,
FROM Products
INNER JOIN Orders ON Orders.id = Products.idOrder
INNER JOIN Customers ON Customers.id = Orders.idCustomer
GROUP BY customers.name
----------------------------------------------------------------------------------
Your lack of planning does not constitute an emergency on my part...unless you're my manager...or a director and above...or a really loud-spoken end-user..All right - what was my emergency again?