sql - 加入当前年份的表并获取上一年的记录
问题描述
输入
表A
ID YEAR
101 2012
101 2013
101 2014
102 2012
102 2013
102 2014
表B
ID YEAR AMOUNT
101 2011 2384
101 2012 2987
101 2013 3232
101 2014 3987
102 2011 2212
102 2012 2332
102 2013 2987
102 2014 3222
输出表
ID YEAR AMOUNT PREV YEAR AMOUNT
101 2012 2987 2384
101 2013 3232 2987
101 2014 3987 3232
102 2012 2332 2212
102 2013 2987 2332
102 2014 3222 2987
问题描述:TableA 将选择年份作为基数,tableB 将拥有所有记录,但我需要将 tableA 和 TableB 连接起来以连接上一年的数据,请参阅输出表。我尝试过自我加入但无法获得它。
解决方案
我认为这是两个连接:
select a.*, b.amount, bprev.amount
from a left join
b
on b.id = a.id and b.year = a.year left join
b bprev
on bprev.id = a.id and bprev.year = a.year - 1;
这是一个 db<>fiddle。
推荐阅读
- reactjs - 未处理的拒绝 (ClientAuthError):需要用户登录。对于静默呼叫,请求必须包含 sid 或 login_hint
- c - 在字段中打印相同数字的位置,c语言
- java - Apache pdfbox 没有将几个链接识别为注释
- python - 如何每 60 秒更新一次 PyQt5 图标?
- oracle - 如何解决使用 impdp 的 oracle 导入中的数千个错误,我不知道在 expdp 期间使用了哪些参数?
- angular - 在一个页面上使用多应用程序,但子级发送事件总是数据到第一个
- tensorflow - 计算卷积pytorch(googlenet)中的填充的公式
- r - R中的闪亮应用程序:如何根据输入选择更新表输出
- javascript - 如何缓存通过 Ajax 加载的文件 - JavaScript (Node JS)
- django - 字典作为 django 模板中的字符串