2013-03-29 88 views
0

這裏是一個問題,請記住我正在使用SQL開發人員3 ....我的select語句有什麼問題?

學生服務部門想知道每個教員在向課堂以外的學生提供建議時的參與程度。提供教員編號列表和教職員建議的學生人數。將教師ID「Faculty ID」的輸出列標題爲「NumStuds」,學生輸出列計爲「NumStuds」。僅在教職員ID小於100且學生的名字或姓氏字段中輸入值時才產生輸出。通過教師ID出現在遞增的順序輸出

這是我得到...

SELECT F_ID AS "Falculty ID" , COUNT S_ID AS "NumStud" FROM student 
WHERE (s_first, s_last, f_id) IS NOT NULL 
AND IS <= 100 
ORDER BY F_ID ACD 

然後我得到的錯誤錯誤命令開始行329:

SELECT F_ID AS "Falculty ID" , COUNT S_ID AS "NumStud" FROM student 
WHERE (s_first, s_last, f_id) IS NOT NULL 
AND IS <= 100 
ORDER BY F_ID ACD 

Error at Command Line:329 Column:42 Error report: SQL Error: ORA-00923: FROM keyword not found where expected 00923. 00000 - "FROM keyword not found where expected"

請幫忙!

+0

你也應該看你的命名約定:F_ID,F_ID。可能你的數據庫不區分大小寫,但有些數據庫是我建議用小寫字母做的所有事情的一切。 –

回答

1

你不能這樣做,因爲你正在測試null值。應該手動進行測試。

SELECT F_ID AS "Falculty ID" , COUNT(S_ID) AS "NumStud" 
FROM student 
WHERE (
      s_first IS NOT NULL OR 
      s_last IS NOT NULL OR 
      f_id IS NOT NULL 
     ) AND IS <= 100 
ORDER BY F_ID ASC 

其次,它應該爲ASC升序ACD

+1

附上count語句:COUNT(S_ID)? –

+0

@joelharkes是的。你是對的。 –

+1

AND AND <= 100'不是一個有效的表達式 –

1

嘗試:

SELECT F_ID AS "Faculty ID" , COUNT(S_ID) AS "NumStud" 
FROM student 
WHERE COALESCE(s_first, s_last) IS NOT NULL AND F_ID < 100 
GROUP BY F_ID 
ORDER BY F_ID ASC