swo*_*978 3 sql sql-server sql-server-2005
我有一个包含以下列的表:
SignatureID
PatientID
PatientVisitID
TreatAuthDate
HIPAADate
DrugTestDate
Run Code Online (Sandbox Code Playgroud)
现在我有以下Select语句:
SELECT *
FROM tblSignature
WHERE PatientID = 12345
Run Code Online (Sandbox Code Playgroud)
此select语句返回8行.我需要完成的是获得MAX TreatAuthDate - 并且使用MAX TreatAuthDate我需要PatientVisitID.然后我需要HipaaDate和DrugTestDate的相同类型的信息.我怎样才能做到这一点?
Qua*_*noi 10
SELECT TOP 1 *
FROM tblSignature
WHERE PatientID = 12345
ORDER BY
TreatAuthDate DESC
Run Code Online (Sandbox Code Playgroud)
要获得"last"的不同定义的最后三个结果,请使用:
SELECT *
FROM (
SELECT TOP 1 'LastThreatAuth' AS which, ts.*
FROM tblSignature ts
WHERE PatientID = 12345
ORDER BY
TreatAuthDate DESC
) SrcTreatAuth
UNION ALL
SELECT *
FROM (
SELECT TOP 1 'LastHIPAA' AS which, ts.*
FROM tblSignature ts
WHERE PatientID = 12345
ORDER BY
HIPAADate DESC
) SrcHIPAA
UNION ALL
SELECT *
FROM (
SELECT TOP 1 'LastDrugTest' AS which, ts.*
FROM tblSignature ts
WHERE PatientID = 12345
ORDER BY
DrugTestDate DESC
) SrcDrugTest
Run Code Online (Sandbox Code Playgroud)