找出列中的重新编码更改

时间:2019-06-10 07:52:36

标签: sql oracle

Emp表

ID  SALE_COM UPDATEDATE SALES_DT
4173 40      09-APR-2016  null
4173 40      20-SEP-2016  null
4173 30      06-OCT-2016  null
4173 30      14-OCT-2016  null
4073 50      23-DEC-2017  null
4073 40      01-JAN-2018  null
4073 40      14-OCT-2016  null

Emp_hist

EMP_ID  FIN_ID PRD_SEQ FIELD_VALUE     FIN_DATE
2167       13         4       30       28/09/14 
2055       11         3       30       01/09/15

Emp_detail

EMP_ID ID
4173   2167   30   06-OCT-2016  null
4073   2055   30   01-JAN-201  null

输出应为:

4173 40      09-APR-2016  null
4173 40      20-SEP-2016  null
4173 30      06-OCT-2016  28/09/14
4173 30      14-OCT-2016  null
4073 50      23-DEC-2017  null
4073 40      01-JAN-2018  01/09/15
4073 40      14-OCT-2016  null

列中的重新编码更改时更新查询

1 个答案:

答案 0 :(得分:1)

以下查询将为您服务:

SELECT
    E.ID,
    SALE_COM,
    UPDATEDATE,
    FIN_DATE
FROM
    EMP E
    LEFT JOIN EMP_DETAIL ED ON E.ID = ED.EMP_ID
                               AND E.UPDATEDATE = SOME_DATE
    LEFT JOIN EMP_HIST EH ON ED.ID = EH.EMP_ID
                             AND ED.FIELD_VALUE = EH.FIELD_VALUE
ORDER BY UPDATEDATE

输出

Output

这里是Demo

干杯!