Объедините несколько таблиц для просмотра с агрегацией - PullRequest
0 голосов
/ 25 июня 2018

У меня есть запрос ниже, который возвращает записи, соответствующие максимальной отметке времени для каждого src_sys_id.

выберите отдельный s1.src_sys_id, s1.execn_ts, s3.cd_id, s4.appl_nm, СЛУЧАЙ, КОГДА s1.st_mgmnt_cd! = "ОЧИСТИТЬ", ПОСЛЕ ТОГО, ЧТО "В ПРОЦЕССЕ" ИЛИ "Несоответствие", КОНЕЦ как статус из dlrm_data_retention.ret_st_aud s1 внутреннее соединение ( ВЫБЕРИТЕ src_sys_id, max (execn_ts) как maxtime FROM dlrm_data_retention.ret_st_aud GROUP BY src_sys_id ) s2 на s2.src_sys_id = s1.src_sys_id и s1.execn_ts = s2.maxtime

Как я могу объединить этот запрос с дополнительными таблицами, чтобы получить еще несколько столбцов, соответствующих этому src_sys_id.

table3 - у этого были src_sys_id и cd_id table4 - это cd_id и src_name.

Мне нужно, чтобы столбцы cd_id и src_name также были частью моего оператора select.

Я попробовал следующее. Это не возвращает никакого результата.

выберите отдельный s1.src_sys_id, s1.execn_ts, СЛУЧАЙ, КОГДА s1.st_mgmnt_cd! = "ОЧИСТИТЬ", ПОСЛЕ ТОГО, ЧТО "В ПРОЦЕССЕ" ИЛИ "Несоответствие", КОНЕЦ как статус из dlrm_data_retention.ret_st_aud s1 ПРИСОЕДИНЯЙТЕСЬ table3 s3 ПРИСОЕДИНЯЙТЕСЬ table4 s4 ON s1.src_sys_id = s3.src_sys_id AND s3.cd_id = s4.cd_id
внутреннее соединение ( ВЫБЕРИТЕ src_sys_id, max (execn_ts) как maxtime FROM dlrm_data_retention.ret_st_aud GROUP BY src_sys_id ) s2 на s2.src_sys_id = s1.src_sys_id и s1.execn_ts = s2.maxtime

1 Ответ

0 голосов
/ 25 июня 2018

Надеюсь, это поможет ..

    select distinct s1.src_sys_id,
    s1.execn_ts,
    CASE WHEN s1.st_mgmnt_cd != "PURGE" 
    THEN 'In-Progress' 
    ELSE 'In-Compliance' 
    END as Status

    from dlrm_data_retention.ret_st_aud As  s1 

    JOIN table3 As s3 ON s3.src_sys_id = s1.src_sys_id 

    JOIN table4 As s4 ON  s4.cd_id = s3.cd_id    

    inner join 
    (
      SELECT src_sys_id, max(execn_ts) as maxtime
      FROM dlrm_data_retention.ret_st_aud 
      GROUP BY src_sys_id 
     ) As s2 on s2.src_sys_id = s1.src_sys_id and s1.execn_ts = s2.maxtime     
...