[英]populate field based on max of another field in a table join
我已经尝试了几种不同的方法,但还没有成功。
我想加盟tbl1
和tbl2
显示在状态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
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.