2014-04-10 27 views
0

我有一些會議日期和時間和考官,在這些會議上,我把一個候選人。考生必須通過考試。查詢和組

我有一個這樣的表:

Exam | Meeting | Niche | Date  | Hour | Examinator | idCandidate 
Math | 1 | 1 |2014-06-28|08:00 | John |  1 
Math | 1 | 2 |2014-06-28|08:20 | John |  0 
Math | 5 | 3 |2014-06-28|13:00 | John |  0 
Math | 2 | 4 |2014-06-28|08:00 | Will |  0 
Math | 2 | 5 |2014-06-28|08:20 | Will |  0 
Math | 3 | 6 |2014-06-29|08:00 | John |  11 
Math | 3 | 7 |2014-06-29|08:20 | John |  0 
Math | 6 | 8 |2014-06-29|14:00 | John |  0 
Bio | 4 | 9 |2014-06-28|08:00 | Bruce |  0 
Bio | 4 | 10 |2014-06-28|08:20 | Bruce |  0 
Bio | 4 | 11 |2014-06-28|08:40 | Bruce |  0 

什麼,我想的是:

Exam | Date | Examinator | Nb Free Candidate 
Math |2014-06-28| John  |   2 
Math |2014-06-28| Will  |   2 
Math |2014-06-29| John  |   2 
Bio |2014-06-28| Bruce  |   3 

其實,我想顯示免費利基(會議)爲了通過考試的編號,日期和審查員。

你能幫我嗎?

+1

顯示你已經嘗試過的東西。 –

+0

我試過了:select exam,Meeting,Niche,Date,Hour,Examinator,SUM(IF(idCandidate = 0,1,0))as'Nb Free Candidate'where idCandidate = 0 group by exam by order ASC,日期ASC,Examinator ASC – Alexking2005

+0

我得到:math | 2014-06-28 | John | 1但是我必須有2個meetin號碼5不在 – Alexking2005

回答

1

你可能在找這個GROUP BY查詢:

SELECT Exam, `Date`, Examinator, COUNT(*) AS nb_free_candidate 
FROM tablename 
WHERE idCandidate = 0 
GROUP BY Exam, `Date`, Examinator 

如果日期列包含日期和時間,你應該使用這樣的:

SELECT Exam, DATE(`Date`), Examinator, COUNT(*) AS nb_free_candidate 
FROM tablename 
WHERE idCandidate = 0 
GROUP BY Exam, DATE(`Date`), Examinator 
+0

這就是我所做的。我有我在評論中顯示的結果。 – Alexking2005

+0

@ Alexking2005日期和時間在兩個不同的領域?還是隻有一個?如果它只是一個,你需要GROUP BY考試,日期('日期'),考試者 – fthiella

+0

我加了你的建議,結果相同。 – Alexking2005