2016-10-01 52 views
1

我有一個收集日常銷售數據(日期,銷售,gst等)的mysql表。我需要一份選擇聲明來比較去年和去年同一日期的任何給定日期的每日銷售額,以瞭解我們在過去幾年當天的銷售額。需要幫助,使sql查詢比較數據列明

要了解輸出表的外觀,我在jsfiddle中有一個示例表。

這裏是sqlfiddle中的sql表數據。

我想這樣的說法:

SELECT * FROM sales_chc WHERE MONTH(sale_date) = '1' 

這當然給了我,我想過濾的結果,但我無法弄清楚如何顯示在提供表例子的結果。

回答

1

通過在WHERE語句中更改年份和月份,您可以獲得所需月份/年份組合的報告。

SELECT sn.sale_date AS SaleY0 , sn.EFTPOS AS EFTPOSY0, sn.total AS totalY0, 
     s1.sale_date AS SaleY1 , s1.EFTPOS AS EFTPOSY1, s1.total AS totalY1, 
     s2.sale_date AS SaleY2 , s2.EFTPOS AS EFTPOSY2, s2.total AS totalY2 
FROM sales_chc sn 
LEFT JOIN sales_chc S1 
ON s1.sale_date=(sn.sale_date -INTERVAL 1 YEAR) 
LEFT JOIN sales_chc S2 
ON s2.sale_date=(sn.sale_date -INTERVAL 2 YEAR) 
WHERE YEAR(SN.sale_date)=2016 AND MONTH(SN.sale_date)=1 

SQL fiddle