COUNT函数中的where子句并加入两个查询

时间:2014-10-27 12:52:23

标签: mysql

我有一张桌子,我正在尝试计算传递的课程数量,并列出了传递的模块。

我遇到的第一个问题是将什么放入where变量,以便它不是特定于客户(我可以使用下面的查询来表示特定客户和特定课程)但我想要一个通用查询结果将在用户和课程方面不同,如下面的

SELECT FirstName
    ,LastName
    ,CourseTitle
    ,Noofmodules
    ,count(Coursecompleted) AS modulescompleted
FROM EStudentsprogress
WHERE Coursecompleted = '1'
    AND EmailAddress = 'scascsc@e.co.uk'
    AND CourseTitle = 'Microsoft MOS 2010 EXCEL'
GROUP BY FirstName
    ,LastName
    ,CourseTitle
    ,Noofmodules

如何让它列出上面的结果,我没有指定电子邮件地址或课程标题(试图获得所有客户的结果)

此外,我还有一个查询列出了客户传递的课程,我希望将带有传递课程列表的列添加到上面的结果中,但作为每个课程的列。

SELECT FirstName
    ,LastName
    ,CourseTitle
    ,EmailAddress
    ,CourseModule AS coursepassed
FROM EStudentsprogress
WHERE coursecompleted = 1

干杯

1 个答案:

答案 0 :(得分:0)

您是否可以只将电子邮件地址和课程标题字段添加到选择字段和GROUP BY子句中。

您还可以使用GROUP_CONCAT返回包含所有课程模块的字段。

这样的事情: -

SELECT FirstName, 
        LastName, 
        CourseTitle, 
        Noofmodules, 
        EmailAddress, 
        CourseTitlecount, 
        COUNT(Coursecompleted) as modulescompleted,
        GROUP_CONCAT(CourseModule) as modulescompletednames 
FROM EStudentsprogress 
WHERE Coursecompleted = '1'
GROUP BY FirstName, LastName, CourseTitle, Noofmodules, EmailAddress, CourseTitlecount ;