2013-05-24 2 views
0

죄송합니다. 더 나은 제목 (또는 의미가있는 것)을 생각할 수 없습니다.SQL 쿼리 : 조건과 일치하는 목록 검색

저는 학생 Jaci Walker와 같은 레벨 값을 가진 학생의 이름을 검색 할 수있는 SQL 쿼리를 작성하려고했습니다.

테이블의 형식은 다음과 같습니다

STUDENT(id, Lname, Fname, Level, Sex, DOB, Street, Suburb, City, Postcode, State) 

그래서 나는 Lname (Walker)Fname (Jaci)을 알고 난 JACI 워커의 수준 다음 출력과 동일한 수준으로 이름의 목록을 찾을 필요가있다.

--Find Level of Jaci Walker 
SELECT S.Fname, S.Name, S.Level 
FROM Student S 
WHERE S.Fname="Jaci" AND S.Lname="Walker" 
GROUP BY S.Fname, S.Lname, S.Level; 

나는 Jaci Walker의 레벨을 검색 할 수 있지만, 다른 쿼리에 그것을 적용하는 방법을 알고하지 않는 방법을 알아 낸 것. 당신의 도움에 대한 모든 사람에게


감사합니다를, 그것으로 쿼리의 나머지 부분을 추가 할 때 내가 한 조금 붙어있어 .

https://www.dropbox.com/s/3ws93pp1vk40awg/img.jpg

SELECT S.Fname, S.LName 
FROM Student S, Enrollment E, CourseSection CS, Location L 
WHERE S.S_id = E.S_id 
AND E.C_SE_ID = CS.C_SE_id 
AND L.Loc_id = CS.Loc_ID 
AND S.S_Level = (SELECT S.S_Level FROM Student S WHERE S.S_Fname = "Jaci" AND S.S_Lname = "Walker") 
AND CS.C_SE_id = (SELECT CS.C_SE_id FROM CourseSection CS WHERE ?) 
AND L.Loc_id = (SELECT L.Blodg_code FROM Location L WHERE L.Blodg_code = "BG"); 

답변

0

이 시도 : 당신은 TOP 1을 사용하지 않는 경우 당신은 당신의 데이터를 하나 이상의 "JACI 워커"이 경우

SELECT S.Fname, S.Name, S.Level FROM Student s 
WHERE Level = 
(SELECT TOP 1 Level FROM Student WHERE Fname = "Jaci" and Lname = "Walker") 

는,이 쿼리가 실패합니다.

+0

그러면 다른 Jaci Walkers가 다른 레벨을 가질 수 있기 때문에 실패 할 수도 있습니다. – Kai

+0

아니요, Where-Clause를 확장하는 것이 좋습니다.독특한 도시인지 교외 지역인지 확인하십시오. –

+0

좋아, 고마워. 질문을 확장하여 - 같은 수준의 사람들과 - 특정 건물의 Jaci Walker와 함께 진행 한 사람들. 며칠 동안 인터넷 검색을 시작한 후 도움을 청했습니다. –

0

단순히

,

SELECT S.Fname, S.Name, S.Level FROM Student S WHERE S.LEVEL LIKE (SELECT LEVEL FROM STUDENT WHERE Fname="Jaci" AND Lname="Walker"); 

당신은 같은를 찾고 있습니다 ... 당신은에 의해 그룹과 같은 모든 필요하다고 생각하지 않습니다 ?

1

이 시도 ...

SELECT S.Fname, S.Name, S.Level 
FROM Student S 
WHERE S.Level = 
    (SELECT Level 
    FROM Student 
    WHERE Fname="Jaci" AND Lname="Walker" 
    ) 

을하지만 당신은 JACI 워커라는 단 1 명 학생이 반드시있어

당신은 다른 항목을 찾을 하위 쿼리로 쿼리를 다시 사용할 수 있습니다
+0

당신에게 –

1

같은 수준.

SELECT Fname, Name 
FROM Student 
WHERE Level = (
    SELECT Level FROM Student S WHERE S.Fname="Jaci" AND S.Lname="Walker") 
+0

가 대단히 감사합니다 대단히 감사하십시오. 15 평판이 필요해. –

+0

가 미안 해요, 난 투표를 할 수 –

+0

다음 질문에 나를 도와 줄 수 있습니까? –

1

결과를 그룹화 할 필요가 없습니다.

Select Fname,Lname from Student 
where Level=(Select Level 
      from Student 
      where Fname='Jaci' AND Lname='Walker'); 
+0

고맙습니다. –

관련 문제