我有一个带有以下信息的案例表-
ID | 案例名称 | 日期 | 占用 |
---|---|---|---|
11 | 约翰 | 2020-01-01 | 木匠 |
12 | 标记 | 2019-10-10 | 机械 |
并提供以下财务信息表-
ID | 案例ID | 日期 | 值 |
---|---|---|---|
1个 | 11 | 2020-01-01 | 1,000 |
2 | 11 | 2020-02-03 | 2,000 |
3 | 12 | 2019-10-10 | 3,000 |
4 | 12 | 2019-12-25 | 4,000 |
我需要制作的是一系列案件,包括最新财务价值的详细信息,例如-
ID | 案例名称 | 占用 | 最高价值 |
---|---|---|---|
11 | 约翰 | 木匠 | 2,000 |
12 | 标记 | 机械 | 4,000 |
现在,我可以轻松地加入我的餐桌了-
SELECT *
FROM Cases AS c
LEFT JOIN Financial AS f ON f.CaseID = c.ID
我可以从财务表中找到每个案例的最新日期,其中包括-
SELECT CaseID, MAX(Date) AS LastDate
FROM Financial
GROUP BY CaseID
但是我正在努力寻找一种方法,将以上两者合在一起以产生所需的结果,如上表所示。
一个简单的方法是窗口函数:
SELECT *
FROM Cases c LEFT JOIN
(SELECT f.*, MAX(date) OVER (PARTITION BY CaseId) as max_date
FROM Financial f
) f
ON f.CaseID = c.ID AND f.max_date = f.date;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句