MySql查询图形数据组-按列中的数据筛选

MySql查询图形数据组-按列中的数据筛选,mysql,group-by,Mysql,Group By,我有两个要连接的表, 这是表1“日历” 这是表2“潜在客户” 我有这个疑问 SELECT calendar.datefield AS DATE, IFNULL( count( lead.insertDate ) , 0 ) AS task FROM lead RIGHT JOIN calendar ON ( DATE( lead.insertDate ) = calendar.datefield ) GROUP BY DATE LIMIT 30 它工作得很好,这是我得到的结果: 问题是我

我有两个要连接的表,
这是表1“日历”

这是表2“潜在客户”

我有这个疑问

SELECT calendar.datefield AS DATE, IFNULL( count( lead.insertDate ) , 0 ) AS task FROM lead RIGHT JOIN calendar ON ( DATE( lead.insertDate ) = calendar.datefield ) GROUP BY DATE LIMIT 30
它工作得很好,这是我得到的结果:

问题是我想通过
lead.lpid
过滤数据。 我尝试在查询“WHERE lead.lpid=x”的末尾添加,并在lead.lpid数据的查询调用的开头添加,如下所示:

SELECT lead.lpid, calendar.datefield AS DATE, 
        IFNULL( count( lead.insertDate ) , 0 ) AS task
        FROM lead 
        RIGHT JOIN calendar ON ( DATE( lead.insertDate ) = calendar.datefield ) 
        GROUP BY DATE LIMIT 30 WHERE lead.lpid =  9
但是我得到了这个错误

.....'WHERE lead.lpid =  9' at line 5 
我有点迷路了。 任何帮助都会很好


这是我的SQL FIDLE,我已经尝试过查询:

哪里出错了:

SELECT lead.lpid, calendar.datefield AS DATE, 
        IFNULL( count( lead.insertDate ) , 0 ) AS task
        FROM lead 
        RIGHT JOIN calendar ON ( DATE( lead.insertDate ) = calendar.datefield )
        WHERE lead.lpid =  9 
        GROUP BY DATE LIMIT 30 
注意:在分组之前必须在何处

根据需要新建查询:

SELECT lead.lpid, calendar.datefield AS DATE, 
        IFNULL( count( lead.insertDate ) , 0 ) AS task
        FROM lead 
        RIGHT JOIN calendar ON ( DATE( lead.insertDate ) = calendar.datefield )
        AND lead.lpid =  9 
        GROUP BY DATE LIMIT 30

联机使用sql Formatter:

很好,它完成了工作,但现在我只看到有数据的日期。是否有办法查看所有日期,包括包含零的行?就像我在问题中发布的结果一样?当然,有没有一种简单的方法可以保留包含“0”的日期,并保留条件?是否也需要计数为0的记录?如果提供sqlfiddlewow man,这将非常有用!这正是我需要的!因此,您在选择之后删除了对
lead.lpid
的调用?伟大的tnx!
SELECT lead.lpid, calendar.datefield AS DATE, 
        IFNULL( count( lead.insertDate ) , 0 ) AS task
        FROM lead 
        RIGHT JOIN calendar ON ( DATE( lead.insertDate ) = calendar.datefield ) 
        WHERE lead.lpid =  9 GROUP BY DATE LIMIT 30
SELECT lead.lpid,
       calendar.datefield AS DATE,
       IFNULL(count(lead.insertDate), 0) AS task
FROM lead
RIGHT JOIN calendar ON (DATE(lead.insertDate) = calendar.datefield)
GROUP BY DATE
HAVING lead.lpid = 9 LIMIT 30