Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- USE caris_db;
- SET
- @start_date = "2019-01-01";
- SET
- @end_date = "2019-03-31";
- SELECT
- patient_code,
- COALESCE(ti.dob, tm.infant_dob, ts.date_of_birth) AS dob,
- IF(TIMESTAMPDIFF(YEAR,
- COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob),
- @start_date) < 1
- AND COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob) != '0000-00-00',
- 'under1',
- IF(TIMESTAMPDIFF(YEAR,
- COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob),
- @start_date) >= 1
- AND TIMESTAMPDIFF(YEAR,
- COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob),
- @start_date) < 10
- AND COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob) != '0000-00-00',
- 'bt_1_9',
- IF(TIMESTAMPDIFF(YEAR,
- COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob),
- @start_date) < 1
- AND COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob) != '0000-00-00'
- AND (ti.gender = 1 OR tm.infant_gender = 1),
- 'm_under1',
- IF(TIMESTAMPDIFF(YEAR,
- COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob),
- @start_date) < 1
- AND COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob) != '0000-00-00'
- AND (ti.gender = 2 OR tm.infant_gender = 2),
- 'f_under1',
- IF(TIMESTAMPDIFF(YEAR,
- COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob),
- @start_date) >= 1
- AND TIMESTAMPDIFF(YEAR,
- COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob),
- @start_date) < 10
- AND COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob) != '0000-00-00'
- AND (ti.gender = 1 OR tm.infant_gender = 1),
- 'm_bt_1_9',
- IF(TIMESTAMPDIFF(YEAR,
- COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob),
- @start_date) >= 1
- AND TIMESTAMPDIFF(YEAR,
- COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob),
- @start_date) < 10
- AND COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob) != '0000-00-00'
- AND (ti.gender = 2 OR tm.infant_gender = 2),
- 'f_bt_1_9',
- IF(TIMESTAMPDIFF(YEAR,
- COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob),
- @start_date) >= 10
- AND TIMESTAMPDIFF(YEAR,
- COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob),
- @start_date) < 15
- AND COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob) != '0000-00-00'
- AND (ti.gender = 1 OR tm.infant_gender = 1),
- 'm_bt_10_14',
- IF(TIMESTAMPDIFF(YEAR,
- COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob),
- @start_date) >= 10
- AND TIMESTAMPDIFF(YEAR,
- COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob),
- @start_date) < 15
- AND COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob) != '0000-00-00'
- AND (ti.gender = 2 OR tm.infant_gender = 2),
- 'f_bt_10_14',
- IF(TIMESTAMPDIFF(YEAR,
- COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob),
- @start_date) >= 15
- AND TIMESTAMPDIFF(YEAR,
- COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob),
- @start_date) < 18
- AND COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob) != '0000-00-00'
- AND (ti.gender = 1 OR tm.infant_gender = 1),
- 'm_bt_15_17',
- IF(TIMESTAMPDIFF(YEAR,
- COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob),
- @start_date) >= 15
- AND TIMESTAMPDIFF(YEAR,
- COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob),
- @start_date) < 18
- AND COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob) != '0000-00-00'
- AND (ti.gender = 2 OR tm.infant_gender = 2),
- 'f_bt_15_17',
- IF(TIMESTAMPDIFF(YEAR,
- COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob),
- @start_date) >= 18
- AND TIMESTAMPDIFF(YEAR,
- COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob),
- @start_date) < 25
- AND COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob) != '0000-00-00'
- AND (ti.gender = 1 OR tm.infant_gender = 1),
- 'm_bt_18_24',
- IF(TIMESTAMPDIFF(YEAR,
- COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob),
- @start_date) >= 18
- AND TIMESTAMPDIFF(YEAR,
- COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob),
- @start_date) < 25
- AND COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob) != '0000-00-00'
- AND (ti.gender = 2 OR tm.infant_gender = 2),
- 'f_bt_18_24',
- IF(TIMESTAMPDIFF(YEAR,
- COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob),
- @start_date) >= 25
- AND COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob) != '0000-00-00'
- AND (ti.gender = 1 OR tm.infant_gender = 1),
- 'm_25',
- IF(TIMESTAMPDIFF(YEAR,
- COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob),
- @start_date) >= 25
- AND COALESCE(IF(tm.infant_dob = '0000-00-00',
- NULL,
- tm.infant_dob),
- IF(ts.date_of_birth = '0000-00-00',
- NULL,
- ts.date_of_birth),
- ti.dob) != '0000-00-00'
- AND (ti.gender = 2 OR tm.infant_gender = 2),
- 'f_25',
- '')))))))))))))) AS tranche,
- IF(regime.id_patient IS NOT NULL,
- 'yes',
- 'non') AS on_arv,
- office,
- IF(statut.id_patient IS NOT NULL,
- 'pos',
- 'neg') AS statut
- FROM
- (SELECT
- id_patient, MIN(date) AS date
- FROM
- (SELECT
- id_patient, date
- FROM
- (SELECT
- id_patient, date
- FROM
- questionnaire_child
- LEFT JOIN patient ON patient.id = id_patient
- WHERE
- patient.created_at >= @start_date
- AND date IS NOT NULL
- AND date != '0000-00-00') ques UNION SELECT
- id_patient, date
- FROM
- (SELECT
- patient.id AS id_patient, date_of_visit AS date
- FROM
- patient
- LEFT JOIN openfn.odk_child_visit od ON patient.patient_code = od.patient_code
- WHERE
- date_of_visit IS NOT NULL
- AND date_of_visit != '0000-00-00'
- AND patient.created_at >= @start_date) odk UNION SELECT
- id_patient, date
- FROM
- (SELECT
- id_patient, date
- FROM
- session
- LEFT JOIN club_session ON club_session.id = session.id_club_session
- LEFT JOIN club ON club.id = id_club
- LEFT JOIN patient ON patient.id = id_patient
- WHERE
- is_present = 1 AND club_type != 1
- AND patient.created_at >= @start_date) club UNION SELECT
- id_patient, date
- FROM
- (SELECT
- id_patient, date
- FROM
- (SELECT
- id_patient, date
- FROM
- testing_mereenfant UNION SELECT
- id_patient, date_blood_taken AS date
- FROM
- testing_specimen UNION SELECT
- id_patient, blood_draw_date AS date
- FROM
- testing_result) pcr
- LEFT JOIN patient ON patient.id = pcr.id_patient
- WHERE
- patient.created_at >= @start_date) p UNION SELECT
- id_patient, date
- FROM
- (SELECT
- id_patient, date
- FROM
- tracking_followup
- LEFT JOIN patient ON patient.id = id_patient
- WHERE
- patient.created_at >= @start_date) o) last
- GROUP BY id_patient) lastone
- LEFT JOIN
- patient ON patient.id = lastone.id_patient
- LEFT JOIN
- tracking_infant ti ON ti.id_patient = lastone.id_patient
- LEFT JOIN
- testing_mereenfant tm ON lastone.id_patient = tm.id_patient
- LEFT JOIN
- testing_specimen ts ON ts.id_patient = lastone.id_patient
- LEFT JOIN
- lookup_hospital ON CONCAT(lookup_hospital.city_code,
- '/',
- lookup_hospital.hospital_code) = LEFT(patient_code, 8)
- LEFT JOIN
- (SELECT DISTINCT
- id_patient
- FROM
- tracking_regime
- WHERE
- category = 'regime_infant_treatment') regime ON regime.id_patient = lastone.id_patient
- LEFT JOIN
- (SELECT
- id AS id_patient
- FROM
- view_patient_positive UNION SELECT
- id_patient
- FROM
- tracking_regime
- WHERE
- category = 'regime_infant_treatment') statut ON statut.id_patient = lastone.id_patient
- WHERE
- lastone.date BETWEEN @start_date AND @end_date
- AND patient.created_at >= @start_date
- AND lastone.id_patient IS NOT NULL
- AND linked_to_id_patient = 0
- GROUP BY lastone.id_patient
Advertisement
Add Comment
Please, Sign In to add comment