Mysql 按天列出的每月销售额比较

Mysql 按天列出的每月销售额比较,mysql,Mysql,我正在使用一个表来存储每天的销售额,我想要一种方法来获取每天的销售额,并与上个月的同一天进行比较,如下所示: 我要每天的销售量 差不多 DAYa | SALESa | DAYb | SALESb 1 | 3 | 1 | 4 2 | 2 | 2 | 5 以此类推,但由于这个月只有7天,其余的日子将有0销售。。。 这是一张有所有销售人员的桌子。 像这样的 ID | DATE 1 | 2015-06-01 2 | 201

我正在使用一个表来存储每天的销售额,我想要一种方法来获取每天的销售额,并与上个月的同一天进行比较,如下所示:

我要每天的销售量 差不多

DAYa  | SALESa | DAYb  | SALESb
1     | 3      | 1     | 4
2     | 2      | 2     | 5
以此类推,但由于这个月只有7天,其余的日子将有0销售。。。 这是一张有所有销售人员的桌子。 像这样的

ID | DATE        
1  | 2015-06-01  
2  | 2015-06-02  
3  | 2015-06-02  
4  | 2015-06-02  
30 | 2015-07-01  
40 | 2015-07-05 
所以在2015-06-02这一天,我有3次销售。。。剩下的只卖一次


不确定什么是创建图表的最佳方法,我应该使用两个查询还是只使用一个查询?

这不完全是一个查询,但此版本将显示上个月销售(在a列中)之后的当月销售(在b列中),即使某个日期没有销售

CREATE TABLE sales_totals AS SELECT `date`, COUNT(*) AS total FROM sales GROUP BY `date`;

SELECT DAY(DATEa) AS DAYa, SALESa, DAY(DATEb) AS DAYb, SALESb
FROM (
    SELECT s1.`date` AS DATEa, s1.total AS SALESa, s2.`date` AS DATEb, s2.total AS SALESb
    FROM sales_totals s1 LEFT JOIN sales_totals s2 ON DATE_ADD(s1.`date`, INTERVAL 1 MONTH) = s2.`date`
    UNION
    SELECT s3.`date` AS DATEa, s3.total AS SALESa, s4.`date` AS DATEb, s4.total AS SALESb
    FROM sales_totals s3 RIGHT JOIN sales_totals s4 ON s3.`date` = DATE_SUB(s4.`date`, INTERVAL 1 MONTH)
) x
WHERE YEAR(DATEb) = YEAR(NOW()) AND MONTH(DATEb) = MONTH(NOW());

DROP TABLE sales_totals;

你能展示你的模式吗?你每月有一张表吗?用户是你的销售栏吗?表名是什么?第二个示例中的每一行都是销售吗?我们是否需要计算每个日期的条目数以获得每个日期的销售额?我看不出你的示例表和结果之间有任何关联。是的,每一行都是一笔销售,在2015-06-01日我卖出了一笔,只有一笔,如果2015-06-01日有两笔,那就是两笔销售……谢谢。。。有人知道我想要什么。。。我不得不将间隔时间从1个月改为31天,但一切都正常。。。非常感谢。