sql - Return Most Recent Time -


i have complex join procedure need return recent time, on x date x patient.

select  convert(varchar(36), apt.uniqueid),          apt.atime,          rtrim(apt.apwork) + ' ' + rtrim(apt.apwrk2),         aps.apsdispchar,         rtrim(ltrim(aps.apstextcolor)),         rtrim(ltrim(aps.apsbgcolor)),         apt.apid,         dbo.makecasestring(pat.pfname, pat.pfnamcase) + ' ' + dbo.makecasestring(pat.plname, pat.plnamcase),         apn.apnentrytime         apt inner join pat on pat.pid = apt.apid inner join aps on ((apt.aconfstat not null , apt.aconfstat = aps.apsid) or (apt.aconfstat null , aps.apsid = ' ')) inner join apn on (apn.apnpid = apt.apid , apn.apndate = apt.adate , apn.apntime = apt.atime) apt.adid = @provideridparam   , apt.adate = @dateparam , apn.apnentrytime in (select max(apn.apnentrytime) apn) order apt.atime asc 

currently i'm using:

apn.apnentrytime in (select max(apn.apnentrytime) apn) 

it works data, while other data (that's large), wont work.

you need correlate subquery outer query on patient id (what i'm assuming pat.pid).

select cast(apt.uniqueid varchar(36))     , apt.atime     , rtrim(apt.apwork) + ' ' + rtrim(apt.apwrk2)     , aps.apsdispchar     , rtrim(ltrim(aps.apstextcolor))     , rtrim(ltrim(aps.apsbgcolor))     , apt.apid     , dbo.makecasestring(pat.pfname, pat.pfnamcase) + ' ' + dbo.makecasestring(pat.plname, pat.plnamcase)     , apn.apnentrytime apt      inner join pat          on pat.pid = apt.apid      inner join aps          on ((apt.aconfstat not null , apt.aconfstat = aps.apsid)              or (apt.aconfstat null , aps.apsid = ' '))      inner join apn          on (apn.apnpid = apt.apid              , apn.apndate = apt.adate              , apn.apntime = apt.atime) apt.adid = @provideridparam        , apt.adate = @dateparam      , apn.apnentrytime in (                                select max(apn1.apnentrytime)                              apn apn1                                 join apt apt1                                     on apt1.apid = apn1.apnpid                                         , apt1.adate = apn1.apndate                                         , apt1.atime = apn1.apntime                             apt1.apid = pat.pid                             ) order apt.atime asc 

Comments

Popular posts from this blog

php - What is the difference between $_SERVER['PATH_INFO'] and $_SERVER['ORIG_PATH_INFO']? -

fortran - Function return type mismatch -

queue - mq_receive: message too long -