[英]Group sum from two tables according to date in MySQL
我有两个不同的表,lead和click。 我想查询MySQL以获取按日期排序的点击和销售线索所产生的佣金总和。
铅:
id|date |commission
1|2009-06-01|400
2|2009-06-01|300
3|2009-06-03|350
点击:
id|date |commission
1|2009-06-01|1
2|2009-06-03|2
3|2009-06-03|1
我想创建一个查询给我(如果可能的话,还会获得未生成潜在客户或点击的日期):
date |commission click|commission lead|total commission
2009-06-01| 1| 700| 701
2009-06-02| 0| 0| 0
2009-06-02| 3| 350| 353
(日期实际上是实际数据库中的日期时间。)
我想我必须结合起来:
SELECT count(*) as number_clicks, sum(click.commission) as sum_clicks,
date(click.time) as click_date from click group by click_date order by click_date
带有:
SELECT count(*)as number_leads, sum(lead.commission) as sum_leads,
date(lead.time) as lead_date from lead group by lead_date order by lead_date
但是我不能让他们一起工作。
这不会获得带有零的日期,因为您将需要一个日期表或一个存储过程来遍历日期。 一种方法是从联合查询中进行子选择(未经测试):
SELECT commission_date, SUM(click_commission), SUM(lead_commission), SUM(total_commission)
FROM (SELECT DATE(click.time) AS commission_date, click.commission AS click_commission,
0 AS lead_commission, click.commission AS total_commission
FROM click
UNION ALL
SELECT DATE(lead.time) AS commission_date, 0 AS click_commission,
lead.commission AS lead_commission, lead.commission AS total_commission
FROM lead) AS foo
GROUP BY commission_date
ORDER BY commission_date
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.