【问题标题】:How to query this table to output the following?如何查询该表以输出以下内容?
【发布时间】:2022-11-15 01:40:11
【问题描述】:

对于下表,是否可以将“PEN_TYPE”列中“PEN”的“DL_INC”列中的日期替换为“PEN_TYPE”中“PIP”的“DL_INC”中的日期?例如对于 PEN_TYPE PEN 的 MEM_REF 304852,日期应从 06/04/2020 更新为 11/06/2020。该表要大得多,但我添加了一小部分。

我试过使用 merge and insert into 但没有成功。

MEM_REF PEN_TYPE DL_INC
304852 PEN 06/04/2020
304582 MODF 06/04/2020
304852 PIP 11/06/2020
403523 PEN 06/04/2020
403523 MODF 06/04/2020
403523 PIP 20/07/2020
503114 PEN 11/06/2020
503114 PIP 20/02/2020

【问题讨论】:

    标签: sql plsql


    【解决方案1】:

    像这样的东西应该能让你大致了解旧日期和新日期。

    SELECT 
       MEM_REF,
       t1.DL_INC as PENdate,
       t2.DL_INC as PIPdate
    FROM table t1
    INNER JOIN table t2 ON t2.MEM_REF=t1.MEM_REF AND t2.PEN_TYPE='PIP'
    WHERE t1.PEN_TYPE='PEN'
    

    在此之后,您可以在 UPDATE 查询中使用它的输出。

    附言

    • 您想更改现有列的值,因此不应使用 INSERT。 (因为INSERT会增加一条新记录)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-04
      • 1970-01-01
      • 2018-11-01
      • 2021-09-06
      相关资源
      最近更新 更多