需要帮助使sql查询以列方式比较数据

时间:2016-10-01 23:06:35

标签: php mysql sql

我有一个mysql表,它收集每日销售数据(日期,销售,gst等)。我需要一个select语句来比较任何给定日期与去年和前一年相同日期的每日销售情况,以查看我们在前几年当天所做的数量。

为了了解输出表的外观,我在jsfiddle中有一个示例表。

这是sqlfiddle中的sql表数据。

我试过这句话:

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

它当然为我提供了我想要的过滤结果,但我无法弄清楚如何在给定表示例中显示结果。

1 个答案:

答案 0 :(得分: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