내 내부 조인 부문에 문제가 있습니다. 내 오라클에서 이미 닫을 때 오른쪽 괄호가 누락되었다는 메시지를 계속 표시합니다. 모든 품목을 모은 환자의 이름을 알아야합니다. 당신은 단지 A1의 별칭과 알의 별칭을 가진 것은 매우 혼란이다SQL 내부 조인 부문
SELECT p.name
FROM patient p
INNER JOIN account a ON (a.patientID = p.patientID)
INNER JOIN accountType accTyp ON (accTyp.accountNo = a.accountNo)
INNER JOIN item i ON (i.itemNo = accTyp.itemNo)
GROUP BY accTyp.itemNo
HAVING COUNT(*) = (SELECT COUNT(*)
FROM accountType);
참고 원하는처럼
Select P.name
From ((((Select Patientid From Patient) As P
Inner Join (Select Accountno, Patientid From Account) As A1
on P.PatientID = A1.PatientID)
Inner Join (Select Accountno, Itemno From AccountType) As Al
On A1.Accountno = Al.Accountno)
Inner Join (Select Itemno From Item) As I
On Al.Itemno = I.Itemno)
Group By Al.Itemno
Having Count(*) >= (Select Count(*) FROM AccountType);
보여주는 기록이되지 않습니다. 답변을 모두 시도한 후에 제공됩니다. p.name 인 1 행에서 '표현에 의한 그룹이 아님'을 알려줍니다. 그러나 p.name으로 그룹화 할 수는 없습니다. 결과가 나타나지 않을 것입니다. 어떤 아이디어? – JLearner
그 문제를 해결하기 위해 쿼리를 편집했습니다. 나는 그것이 효과가있을 것이라고 믿는다. 기본적으로 선택 방법을 수행하려면 a.name이 그룹별로 열에 있어야 할 가능성이 큽니다. Accountno별로 그룹화하고 있지만 이름 만 선택하면 여전히 문제가있을 수 있습니다. –
같은 결과가 있습니다. 표시되는 행이 없습니다. 바로 옆에 5 개의 행이 있어야합니다. 내가 테이블에 가입 할 때 나는 어떤 행도 보지 못했습니다. 어떤 아이디어? – JLearner