2015-02-10 57 views
0

在我的客户关系管理系统中,我有带导联的表格。我想制作一张图表,查看过去7天内添加了多少线索。为了这个目的,我需要从上周的每一天分开总计。如何检索最后7天的数据总和作为单独的总和

如何在MySQL中做到这一点?

我的表称为tab_leads它有lead_id(整数)和lead_create_date(时间戳,格式:0000-00-00 00:00:00)

所以,我需要这样的东西:

  • 日1 - 10
  • 第2天 - 0
  • 第3天 - 第5
  • 第4天 - 1
  • 天5 - 9
  • 第6天 - 15
  • 第7天(今天) - 2
+0

什么是重要的,我需要有一个七款项。 即使从特定的日子没有线索,我也需要一个0。 – Tikky 2015-02-10 10:23:48

回答

2

只需使用一个GROUP BY查询:

SELECT 
    DATE(lead_create_date) AS `Date`, 
    COUNT(*) AS `Leads` 
FROM 
    tab_leads 
WHERE 
    lead_create_date >= CURRENT_DATE - INTERVAL 6 DAY 
GROUP BY 
    DATE(lead_create_date) 

上述查询假设没有未来记录和当天计为第7天。

+0

你好,谢谢你的信息。 这有效,但是当那些日子里没有数据时(没有新的线索),我没有获取数据。 我的意思是我总是需要7笔钱,即使sum = 0。 有没有机会获得这种类型的结果? – Tikky 2015-02-10 10:22:24

+1

哦。我会使用一个日期表(或类似http://stackoverflow.com/q/510012/87015),并将它与引线表结合起来。 – 2015-02-10 10:27:09

+0

好的,谢谢你分享你的知识:) – Tikky 2015-02-10 10:59:14

1

试试这个MySQL查询

SELECT * FROM tab_leads WHERE DATE(lead_create_date) = DATE_SUB(DATE(NOW()), INTERVAL 7 DAY) GROUP BY DATE(lead_create_date); 
+0

这个工作,但它也没有显示空白数据的日子。 即使sum = 0,我总是需要七笔金额。 – Tikky 2015-02-10 14:11:33

1

试试这个

SELECT COUNT(ead_id) from tab_leads GROUP BY DAY(lead_create_date) 

(或按您的要求)

SELECT SUM(ead_id) from tab_leads GROUP BY DAY(lead_create_date) 
+0

按天分组会产生不正确的结果。例如,1月1日,2月1日,3月1日等所有线索将合并为一行。 – 2015-02-10 10:25:17