我有一張表,列出了成員潛水結果的結果。我需要拿出一張表格,只顯示第一次通過潛水測試的人員,並將他們的資格列入決賽桌。SQL計數語法
我的邏輯是,我去除了那些在測試歷史記錄中失敗的人以及那些出現在列表中的人多一次。
這是我到目前爲止。我對SQL很陌生,所以如果看起來不對,我真的很抱歉。
感謝
SELECT b.branchmarina AS "Branch Suburb", m1.memsurname AS "Member Surname", m1.memfirstname AS "Member First Name", m2.memsurname AS "Mentor Surname", m2.memfirstname
AS "Mentor First Name", dt.dttestdate AS "Date", dt.DtQualLevel AS "Qualification" /*list of members who passed diving test on first attempt*/
FROM d_branch b, d_divetest dt, d_member m1, d_member m2
WHERE UPPER (dt.dttestresult)='PASS'
AND COUNT(DtMemberNo)<2
AND m2.MemMentorMemberNo=m1.memberno
AND m1.membranchno=b.branchno
AND dt.testresult = (SELECT *
FROM d_divetest dt1
WHERE UPPER (dt1.dttestresult)='PASS'
AND NOT EXISTS (UPPER (dt1.dttestresult)='FAIL'))
這是我使用的表:
DtTestDate DtMemberNo DtQualLevel DtTestResult DtReasonFailed
17-Apr-13 201 Beginner Pass
18-Apr-13 202 Advanced Pass
19-Apr-13 203 Expert Pass
20-Apr-13 204 Beginner Pass
21-Apr-13 205 Beginner Fail Not able to stabilise
26-Apr-13 205 Beginner Pass
22-Apr-13 206 Beginner Fail Not able to stabilise
27-Apr-13 206 Beginner Fail Not able to stabilise
27-May-13 206 Beginner Pass
27-Aug-13 206 Advanced Pass
23-Apr-13 207 Expert Pass
24-Apr-13 208 Beginner Pass
25-Apr-13 209 Advanced Pass
01-Dec-13 211 Beginner
02-Dec-13 212 Beginner
03-Dec-13 213 Beginner
04-Dec-13 214 Beginner
05-Dec-13 215 Beginner
27-Apr-13 226 Beginner Fail Weight belt not secured correctly
29-Apr-13 227 Advanced Fail Unable to complete test
30-Apr-13 228 Beginner Fail Not able to stabilise
如果任何人有任何好的教程或建議,我將不勝感激。
您應該在您的'FROM'語句中指定您的連接,而不是'WHERE'子句[link](http://technet.microsoft.com/en-us/library/aa213235(v = sql.80))。 aspx) –
你如何使用d_divetest加入成員表? –