SELECT patientid, max(Treatauthdate), max (HippaDAte) , max (DrugTestDate)
FROM tblSignature
WHERE PatientID = 12345
group by patientid
Hinweis Sie signatureid in diesem Fall nicht fragen können, wie Sie jede nicht filtern würden zeichnet auf (Ich mache die Annahme signaturid ist Ihre PK). Um das Maximum jedes Datums pro Patient zu erhalten, ist es wahrscheinlich, dass sie sich jeweils in einer anderen Zeile der Tabelle befinden und daher nicht die gleiche Signatur-ID haben.
Das Besuchsdatum für jeden Typ kann schwieriger sein, da jeder ein separater Besuch sein kann. versuchen so etwas wie
select a.patientid, Treatvisitdate, Treatauthdate,Hippavisitdate, HippaDate, DrugTestvisitdate,
DrugTestDate
(SELECT patientid, patientvisitdate as Treatvisitdate, max(Treatauthdate) as Treatauthdate
FROM tblSignature
WHERE PatientID = 12345
group by patientid,patientvisitdate)a
join
(SELECT patientid, patientvisitdate as Hippavisitdate, max(HippaDate) as HippaDate
FROM tblSignature
WHERE PatientID = 12345
group by patientid,patientvisitdate) b on a.patientid = b.patientid
join
(SELECT patientid, patientvisitdate as DrugTestvisitdate, max(DrugTestDate) as DrugTestDate
FROM tblSignature
WHERE PatientID = 12345
group by patientid,patientvisitdate) c on a.patientid = c.patientid
Unter Umständen müssen Sie links schließt sich, wenn einige der Daten sind nicht drin sein könnte.
Das tut genau das, was ich brauche. Gibt es einen Vorschlag, wie ich die Top 1 für jedes Treatauthdate, Hipaadate und Drugtestdate bekommen könnte? die oberste 1 für Behandlung Datum möglicherweise nicht die Top 1 für die Drogetestdate, aber ich würde die patientvisitID für die Top 1 treatauthdate benötigen ... dann die patientvisitID für die Top 1 hipaadate ... dann die patientvisitID für die Top1 Drugtestdate. Wie könnte ich dies in eine gespeicherte Prozedur einfügen und uns damit ein Objekt füllen? – swolff1978
Perfekt. Ich habe den obigen Code geändert, indem ich SELECT * FROM (...) hinzugefügt habe SrcTreatAuth UNION ALL SELECT * VON (...) SrcHipaa UNION ALL ... – swolff1978
@ swolff1978: korrekt. Ich vergesse immer, dass ich nicht in 'Oracle' bin, um Aliase von Abfragen auszulassen. – Quassnoi