2013-03-29 3 views
0

다음은 질문입니다. SQL Developer 3을 사용하고 있습니다.내 선택 진술에 어떤 문제가 있습니까?

학생 서비스 부서에서는 수업 외의 학생들에게 조언을 제공 할 때 각 교직원이 얼마나 관여했는지 알고 싶어합니다. 교원 ID와 교원이 조언하고있는 학생 수의 목록을 제공하십시오. 교수진 ID "Faculty ID"에 대한 출력 열과 학생 수에 대한 출력 열의 제목을 "NumStuds"로 지정합니다. 교수진 ID가 100 미만이고 학생의 성 또는 이름 필드에 입력 한 값이있는 경우에만 출력물을 생성하십시오. 그런 다음

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)에서 시작 오류 오류를 얻을 ... 이것은 내가 무엇을 얻을

교수 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 

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

당신은 또한 당신의 이름 지정 규칙을보고해야한다. 아마도 데이터베이스는 대소 문자를 구분하지 않지만 일부 데이터베이스는 소문자로 모든 것을 수행하도록 권고하는 모든 것입니다. –

답변

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 (S_ID)? –

+0

@joelharkes 예. 네가 옳아. –

+1

'AND IS <= 100'은 (는) 유효한 표현식이 아닙니다. –

1

시도해서는 안 : F_ID, f_id :

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 
관련 문제