繁体   English   中英

根据表连接中另一个字段的最大值填充字段

[英]populate field based on max of another field in a table join

我已经尝试了几种不同的方法,但还没有成功。

我想加盟tbl1tbl2显示在状态tbl1从和状态tbl2地方tbl1.wonum = tbl2.wonum并与记录max(change_date)

有人能帮忙吗?

TBL1内容:

 WONUM | STATUS
---------------
   1   | text
   2   | text
   3   | text
   4   | text

TBL2内容:

 WONUM | STATUS | CHANGEDATE
-----------------------------
   1   | text1  |   28-Oct
   1   | text2  |   25-Oct
   1   | text3  |   31-Oct
   1   | text4  |    1-Oct
   2   | text3  |   28-Oct
   2   | text3  |   25-Oct
   2   | text3  |   31-Oct
   3   | text3  |    1-Oct
   3   | text3  |    1-Oct
   4   | text3  |   25-Oct
   4   | text3  |    1-Oct

SqlFiddleDemo

SELECT 
    *
FROM (
      SELECT 
          T1."WONUM", T1."STATUS", T2."STATUS", T2."CHANGEDATE",
          ROW_NUMBER() OVER (PARTITION BY t1."WONUM" ORDER BY "CHANGEDATE" desc) as rn
      FROM TBL1 T1
      JOIN TBL2 T2 
        on T1."WONUM" = T2."WONUM"
    ) t
WHERE t.rn = 1

输出

| WONUM | STATUS_T1 | STATUS_T2 |                CHANGEDATE | RN |
|-------|-----------|-----------|---------------------------|----|
|     1 |   textABC |     text3 | October, 31 2001 00:00:00 |  1 |
|     2 |   textDEF |     text3 | October, 31 2001 00:00:00 |  1 |
|     3 |   textGHI |     text3 | October, 01 2001 00:00:00 |  1 |
|     4 |   textJKL |     text3 | October, 31 2001 00:00:00 |  1 |

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM