2014-02-27 4 views
0

예를 들어 둘 이상의 클래스가있는 학생에게 표시 할 쿼리를 작성하십시오. 관계형 데이터베이스에서 여러 항목을 확인하려면 어떻게합니까?

myQuery := 
    (project studID (select (count(studID) > 1)(schoolRoster))); 

(즉, 학생이 하나 개 이상의 클래스에 등록되어 있으면 그래서 중복 studID 것) schoolRoster 클래스에 등록 된 모든 학생들의 studID 및 CLASSID 포함되어 있다고 가정합니다.

필요한 것은 하나 이상의 클래스를 가진 학생의 학생 ID 만 표시하는 것입니다. 그러나 카운트 데이터 구조가 작동하지 않습니다. 내가 뭘할지 알 수있게 도와 줄 수 있니?

답변

0

그래서 저는 동료의 도움으로 이것을 알아 냈습니다. 다른 사람들에게 도움이되기를 바랍니다. 이렇게하려면 아래 코드와 같이 쿼리의 복사본을 만들고 데이터를 조작해야합니다.

myQuery := 
    project studID, classID (schoolRoster); 
myQueryCopy(studID2, classID2) := 
    myQuery; 
checkMoreThanOne(ID) := 
    project studID(select studID = studID2 and classID <> classID2(myQuery product myQueryCopy)); 
% At this point you could be done, but if you need additional information from the original table, you can get it with one more line of code (myQueryFinal) 
myQueryFinal := 
    project studID, studAge (select ID = studID (checkMoreThanOne njoin schoolRoster)); 
+0

나는 학교 테이블에서 학생 연령을 갖는 것이 잘 형성된 DB에서는 이루어지지 않을 것이라고 생각하지만, 나는 단순화하려고 노력했다. – bstrong

관련 문제