我需要真正的专业DBA帮助!我无法在销售数据表中找到合适的解决方案,使用LEFT JOIN,UNION,UNION ALL或IFNULL(salesblah,0)在日期表上。由于销售代表可能存在空白,因此在销售数据独奏中运行查询已经结束。当然,我可以在PHP中创建一个数组以便按日期汇总数据,但是必须有一个优雅的解决方案,我无法看到,而这个个人挑战让我疲惫不堪。对此,必须有一个简短而甜蜜的解决方案。MySQL:显示月度销售额并包括月份,其中没有销售的地方
随着MySQL的5.5.15在服务器上,销售数据的摘录(目前为800,000行和每天都在增加)看起来是这样的:
Rep Date QtyOrdered PriceEach
--------------------------------------------------
1 2011-06-05 4 1457.23
1 2011-08-01 1 3342.54
1 2011-08-11 12 112.23
2 2011-05-02 3 2654.23
2 2011-08-23 22 423.43
. ... ... ...
其他表只是一个从2000-日期列01-01至2034年12月31日
使用(或不使用)日期表,当我把一个代表1查询,我怎么能得到这样的结果:
YYYY-MM Total Sales
------------------------
2010-08 0
2010-09 0
2010-10 0
2010-11 0
2010-12 0
2011-01 0
2011-02 0
2011-03 0
2011-04 0
2011-05 0
2011-06 5828.92
2011-07 0
2011-08 4960.14
我我真的希望能够放弃一本毫无节制的不礼貌的书。感谢你的才能。
编辑:从德里克左加入解决方案省略非零月。 Nerf的子查询方法将所有内容汇总为一个月。我认为这是造成非零月份的GROUP BY。
谢谢!我相信最简单的过程就是让PHP通过一个数组运行结果。最终,这是通过GD建立一个数月范围的图表,混合解决方案可能会在该部分节省一个步骤。
再次感谢您!
您到目前为止尝试了哪些查询?什么是表名? –
这正是LEFT JOIN的设计目的。你能发表你试过的吗? –