Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- USE caris_db;
- SET @start_date= "2016-10-01";
- SET @end_date="2017-09-30";
- select count(a.id_patient) as nbr_test,
- sum(if(timestampdiff(month,a.dob,date_blood_taken)<2,1,0)) as '<2',
- sum(if(timestampdiff(month,a.dob,date_blood_taken)between 2 and 12,1,0)) as bt_2_12,
- sum(if(timestampdiff(month,a.dob,date_blood_taken)>12,1,0)) as '>12',
- count(b.id_patient) as nbr_on_arv,
- sum(if(b.id_patient is not null,if(timestampdiff(month,a.dob,date_blood_taken)<2,1,0),0)) as on_arv_2,
- sum(if(b.id_patient is not null,if(timestampdiff(month,a.dob,date_blood_taken)between 2 and 12,1,0),0)) as on_arv_2_12
- , sum(if(b.id_patient is not null,if(timestampdiff(month,a.dob,date_blood_taken)>12,1,0),0)) as on_arv_12,
- sum(b.id_patient is null) as total_no_arv,
- sum(if(timestampdiff(month,a.dob,date_blood_taken)<2, if(b.id_patient is null,1,0),0)) as no_arv_2,
- sum(if(timestampdiff(month,a.dob,date_blood_taken)between 2 and 12,if(b.id_patient is null,1,0),0)) as no_arv_2_12
- , sum(if(timestampdiff(month,a.dob,date_blood_taken)>12,if(b.id_patient is null,1,0),0)) as no_arv_12,
- sum(tracking_infant.is_dead=1) as total_no_arv_dead
- ,sum(if(timestampdiff(month,a.dob,date_blood_taken)<2 and tracking_infant.is_dead=1,1,0)) as no_arv_2_dead,
- sum(if(timestampdiff(month,a.dob,date_blood_taken)between 2 and 12 and tracking_infant.is_dead=1,1,0)) as no_arv_2_12_dead,
- sum(if(timestampdiff(month,a.dob,date_blood_taken)>12 and tracking_infant.is_dead=1,1,0)) as no_arv_12_dead,
- sum(tracking_infant.is_dead=1 and tracking_infant.death_date<a.pcr_result_date) as total_no_arv_dead_before_result
- from (select id_patient, date_of_birth as dob, pcr_result_date, date_blood_taken from testing_specimen t1
- where date_blood_taken between @start_date and @end_date and date_blood_taken =
- (select min(date_blood_taken) from testing_specimen t2 where t1.id_patient=t2.id_patient)
- and pcr_result = 1
- group by id_patient)a
- left join
- (select * from
- ( select id_patient
- from tracking_followup where on_arv=1
- union
- select id_patient
- from tracking_regime
- )x group by id_patient
- )b on a.id_patient = b.id_patient
- left join tracking_infant
- on b.id_patient=tracking_infant.id_patient
Advertisement
Add Comment
Please, Sign In to add comment