根据A表数据商品编码,日期去获取B表同一编码,且最新日期的其中一行数据。
匹配条件例子:A表.商品编码 = B表.商品编码 AND A表.日期 >= B表.日期其中最新日期的其中一行。
B表中有很多A表同一商品编码但是不同日期的数据,根据A表商品编码和日期,去获取最靠近B表同一商品编码,且A表日期最靠近B表日期那一行价格。
![](https://profile-avatar.csdnimg.cn/default.jpg!4)
B表中有很多A表同一商品编码但是不同日期的数据,根据A表商品编码和日期,去获取最靠近B表同一商品编码,且A表日期最靠近B表日期那一行价格。
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 高辉杰' 2022-11-01 14:10关注
是这样吗 WITH T1 AS ( -- 测试数据 SELECT '20220101' AS DT,'A01' CODE , 1 AMT UNION ALL SELECT '20220102' AS DT,'A01' CODE , 2 AMT UNION ALL SELECT '20220103' AS DT,'A01' CODE , 3 AMT UNION ALL SELECT '20220104' AS DT,'A01' CODE , 4 AMT UNION ALL SELECT '20220105' AS DT,'A01' CODE , 5 AMT UNION ALL SELECT '20220106' AS DT,'A01' CODE , 6 AMT UNION ALL SELECT '20220111' AS DT,'A01' CODE , 11 AMT UNION ALL SELECT '20220111' AS DT,'B01' CODE , 8 AMT ) , T2 AS ( -- 测试数据 SELECT '20221031' AS DT,'A01' CODE UNION ALL SELECT '20221001' AS DT,'B01' CODE UNION ALL SELECT '20220901' AS DT,'B02' CODE UNION ALL SELECT '20220902' AS DT,'B03' CODE UNION ALL SELECT '20220903' AS DT,'B04' CODE UNION ALL SELECT '20220904' AS DT,'B05' CODE UNION ALL SELECT '20220905' AS DT,'B06' CODE UNION ALL SELECT '20220906' AS DT,'B07' CODE ) SELECT DISTINCT * FROM ( SELECT T1.CODE ,MAX(T1.DT)OVER(PARTITION BY T1.CODE ORDER BY CODE) DT ,MAX(T1.AMT)OVER(PARTITION BY T1.CODE ORDER BY CODE) AMT FROM T2,T1 WHERE T2.CODE = T1.CODE) T1
解决 无用评论 打赏 举报
悬赏问题
- ¥15 Matlab安装yalmip和cplex功能安装失败
- ¥15 加装宝马安卓中控改变开机画面
- ¥15 STK安装问题问问大家,这种情况应该怎么办
- ¥15 更换了一个新的win10系统,再下载VS时碰到的问题,是C++组件的?
- ¥15 关于罗技鼠标宏lua文件的问题
- ¥15 halcon ocr mlp 识别问题
- ¥15 已知曲线满足正余弦函数,根据其峰值,还原出整条曲线
- ¥20 无法创建新的堆栈防护界面
- ¥15 sessionStorage在vue中的用法
- ¥15 wordpress更换域名后用户图片头像不显示