2011-10-03 2 views
-1

다른 테이블의 두 속성을 나열해야하는 아래 쿼리가 작동하지 않습니다. 위의 쿼리를 작성하는 간단한 방법이 있습니까? 항목 정보 및 존 웨인라는 이름의 환자에 대한 모든 치료의 최신관계 대수 쿼리

Tables: 
Patient (PatientID, FamilyName, GivenName,Address) 
Item (ItemNo, Info, Fee) 
Account (AccountNo, PatientID, Date) 
AccountLine (AccountNo, ItemNo) 

목록 :

Select FamilyName =” Wayne” and GivenName=”John” (Patient)> Temp1 
     Temp1*Temp1.PatientID = Account.PatientID (Account) > Temp2 

- Updated 

Temp2*Temp2.AccountNo = AccountLine.AccountNo (Temp2 X Account) >Temp3 
Temp3*Temp3.ItemNo = Item.ItemNo (Temp3x Item) > Temp4 
Select Description, Date(Temp4) 

Join Answer 
Select Description, Date (Restrict FamilyName =” Wayne” and GivenName=”John” (Patient) Join Account Join Item Join AccountLine) 
+0

그것은 매우 특이한 표기법입니다 - 어떻게 작동하는지 설명 할 필요가 있습니다 첫 번째 줄에는 SELECT가 있고 두 번째 줄에는 왜 왜없는가요?). 네 개의 모든 테이블을 조인해야합니다. 현재 AccountLine과 Item을 놓치고 있습니다. –

+1

이 숙제가 있습니까? – Jack

+0

나는이 질문이 여러 번 편집되었음을 주목한다. 당신이 "Join Answer"라고 부르는 것은 간단하고 정확한 결과를 줄 것입니다. 그래서 자신의 질문에 답한 것처럼 보입니다. 옳은? – onedaywhen

답변

1

매우 [homework] 같은 난 그냥 힌트를 제공 할 것 같은데 ...

테이블에서 선택하는 대신 조인
을 구체적으로 선택할 수 있습니다. 자연 조인 PatientAccount 테이블은 하나의 계정에서 모든 AccountNo 및 Date 값을 찾을 수 있습니다. 존 웨인과 관련이있다.
마찬가지로 다른 조인은 AccountNo가 지정된 Item Info를 찾습니다.
그리고 join이 다른 하나와 합쳐질 수 있기 때문에 (충돌이 없다고 가정 할 때) 나는 거의 그것을 풀어 낸 것처럼 보입니다 ...

+0

Ughh 죽음의 주황색 ... 나는 지난 가을 DB 이론을 가지고 있었고 나의 기술을 테스트하고 싶었습니다. – Jack

+0

FamilyName = "Wayne"및 GivenName = "John"(환자)> Temp1을 선택하십시오.Temp1 * Temp1.PatientID = Account .PatientID (계정)> TEMP2 TEMP2 * Temp2.AccountNo = AccountLine.AccountNo (TEMP2 X 계정)> TEMP3 TEMP3 * Temp3.ItemNo = Item.ItemNo (Temp3x 항목)> Temp4 선택 설명, 날짜 (Temp4) 에서 이 방법은 가능합니까? – JLearner

+0

@ user976050 사용중인 표기법에 익숙하지 않습니다. 자연스러운 조인 그룹에 대한'Selection' 연산이 "의사가 주문한 것"인 것처럼 보이는 중간 변수를 계속 사용하는 것은 결코 아닙니다. – mjv