2014-10-27 49 views
0

我有一張表,我正在計算傳遞的課程數量,並列出傳遞的模塊。COUNT函數中的where子句並加入兩個查詢

我遇到的第一個問題是如何放入where變量,以便它不是特定於客戶(我可以使用下面的查詢來查詢特定客戶和特定課程),但我會喜歡通用查詢其中結果將在用戶,當然像下面

SELECT FirstName 
    ,LastName 
    ,CourseTitle 
    ,Noofmodules 
    ,count(Coursecompleted) AS modulescompleted 
FROM EStudentsprogress 
WHERE Coursecompleted = '1' 
    AND EmailAddress = '[email protected]' 
    AND CourseTitle = 'Microsoft MOS 2010 EXCEL' 
GROUP BY FirstName 
    ,LastName 
    ,CourseTitle 
    ,Noofmodules 

一個是我怎麼能做出列出如上的結果,因此我不指定電子郵件地址或課程名稱而言是不同的(試圖讓結果爲所有的客戶)

另外我有一個查詢,列出客戶傳遞的課程,我會喜歡colu將通過的課程列表添加到上面的結果中,但將其作爲每個課程的列。

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

乾杯

+0

你能添加你想看到你的第二個查詢什麼的例子嗎? – 2014-10-27 12:59:19

+0

假設微軟課程有6個模塊(模塊1,模塊2.etc),並且客戶只傳遞模塊1和模塊4.我希望第一個表格在客戶的課程結束時有附加的結果列,內容將模塊1,另一列課程通過,列將模塊4. – 2014-10-27 13:04:46

+0

只需選擇所有通過的課程,並在每個用戶的PHP端計數 – 2014-10-27 13:14:08

回答

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 ; 
+0

我有不正確的語法附近的關鍵字FROM。我正在使用tsql – 2014-10-27 13:41:34

+1

在「GROUP_CONCAT」之後用單個開放式括號替換雙開放式括號 – Bohemian 2014-10-27 13:42:37