我有一张桌子,我正在尝试计算传递的课程数量,并列出了传递的模块。
我遇到的第一个问题是将什么放入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
干杯
答案 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 ;