이전 게시물에서는 "doctor", "patient"및 "visit"의 3 개 테이블로 구성된 매우 간단한 데이터베이스를 수행했습니다. 나는 그것을 더 현실적으로 만들고 "의사"와 "환자"사이에 많은 관계를 포함 시키려고 노력했다. "방문"은이 n-m 관계를 초래하는 테이블입니다. 내 테이블에 대해 다음과 같은 간단한 구조를 가정SQL 쿼리에 대한 도움말
idVisit idDoctor idPatient timestamp 1 1 1 2010-07-19 14:10 2 1 2 2010-07-19 15:10 3 2 1 2010-07-19 15:10 4 3 1 2010-07-19 16:10 5 2 2 2010-07-19 18:10 6 2 3 2010-07-19 19:10 7 1 1 2010-07-19 20:10
그때 3 명, 3 의사를 가지고 : 나는 다음과 같은 데이터를 사용하고
doctor - idDoctor - name patient -idPatient -name -dob visit -idVisit -idPatient -idDoctor -timestamp
있는 내가 쿼리를 만들고 싶어. 예를 들어, 환자 1은 의사 1, 의사 2를 한 명, 의사 3 명을 1 번보기 위해 두 번갔습니다.
각 부부 (의사, 환자)에 대해 마지막 방문을하도록 요청하고 싶습니다. . 환자가 의사 1에게 지불 한 마지막 방문이 20시 10 분에 14시 10 분이 아니기 때문에이 쿼리는 id 방문수 (2,3,4,5,6,7)를 반환하고 1이 아닌 값을 반환해야합니다. 내가 어떻게 할 수 있니?
정말 감사드립니다. SQL을 사용하기 시작할 때 디자인을 향상시키는 데 정말로 도움이됩니다. 그 가정이
SELECT v.idVisit, v.idDoctor, v.idPatient
FROM visit v
WHERE NOT EXISTS
(
SELECT * FROM visit v2
WHERE v2.idDoctor = v.idDoctor
AND v.idPatient = v2.idPatient
AND v2.timestamp > V.timestamp
)
또는, 당신의 DBMS이 지원하는 경우, 할 수없는 경우
어떤 데이터베이스를 사용하고 있습니까? SQL Server, Oracle, MySQL 또는 다른 어떤 것? –
일부 datbase에서는 예약어 일 수 있으므로 열 타임 스탬프는 지정하지 않습니다. – HLGEM