sql - Most recent record value with multiple joins and subqueries -


i'm using ms sql server 2016. i'm trying recent measurement value row_number function still getting multiple records instead of recent measurement value. i'm bit outside of sql comfort zone , assistance appreciated. possible use row_number function inside of subquery?

select     distinct      v_pat_fact.pat_id,     v_pat_fact.pat_name,      cast(patient.birth_date date) "birth date",      v_pat_fact.sex_name "gender",      v_pat_fact.cur_pcp_name,      v_pat_fact.pat_mrn_id,      cast(dateadd(d,cast(fmid7947.meas_value numeric),'12/31/1840') date) "restart date",     cast(dateadd(d,cast(fmid7948.meas_value numeric),'12/31/1840') date) "initial date",     floor(cast(left(cast(fmid7739.meas_value numeric), 4) numeric (8,3))/16) "init goal wt",     floor(cast(left(cast(fmid7912.meas_value numeric), 4) numeric (8,3))/16) "init restart wt",     fmid8794.meas_value "tgt maint wt",     floor(cast(fmid14.meas_value numeric(8,3))/16) "wt lbs",     fmidbmi.meas_value "bmi",     floor(cast(left(cast(fmid8796.fsd_id numeric), 4) numeric (8,3))/16)"total loss",     fmid7752.meas_value "bariatric med"      v_pat_fact v_pat_fact     left  outer join patient        on v_pat_fact.pat_id = patient.pat_id     inner join       ip_flwsht_rec  on v_pat_fact.pat_id = ip_flwsht_rec.pat_id      inner join       ip_flwsht_meas on         ip_flwsht_rec.fsd_id = ip_flwsht_meas.fsd_id          ,         ip_flwsht_meas.flt_id = '343'         ,         ip_flwsht_meas.flo_meas_id in ( '7947', '7948', '7739', '7912', '8794', '8481', '14', '301070', '8796','7752' )     inner join       ip_flo_gp_data on ip_flwsht_meas.flo_meas_id = ip_flo_gp_data.flo_meas_id     left outer join     (         select             distinct             mes.flo_meas_id,             mes.meas_value,             vp.pat_id,             rsdate.meas_value "something"                     pat_enc vp             inner join ip_flwsht_rec rec on vp.pat_id=rec.pat_id             inner join ip_flwsht_meas mes on rec.fsd_id=mes.fsd_id             inner join (                 select                     m.*,                     row_number() on (partition fsd_id  order entry_time desc) rn                                     ip_flwsht_meas m                                     m.flo_meas_id = '7948'             ) rsdate on mes.fsd_id = rsdate.fsd_id                     mes.flo_meas_id ='7948'     ) fmid7948 on v_pat_fact.pat_id = fmid7948.pat_id 


Comments

Popular posts from this blog

c# - Update a combobox from a presenter (MVP) -

How to understand 2 main() functions after using uftrace to profile the C++ program? -

How to put a lock and transaction on table using spring 4 or above using jdbcTemplate and annotations like @Transactional? -