sql - 第二个表中的第一个日期,其中日期大于表第一个 oracle 中的日期
问题描述
我想从第二张桌子上提取日期。我的第二张表可能有超过 100 个日期到唯一记录(A、B、C)。我有我的第一个表:
Name Count Data1
A 1 20190201
B 3 20190201
C 6 20190201
第二个表:
Name Date
A 20190101
B 20190203
A 20190102
B 20190103
C 20190305
C 20190809
A 20190304
B 20190405
当日期大于第一个表中的 date1 时,我想第一个表从第二个表中提取日期第一个日期。
结果必须是:
Name Count Data1 Date2
A 1 20190201 20190304
B 3 20190201 20190203
C 6 20190201 20190305
如何提取日期。它必须是一个程序或另一个解决方案。感谢帮助 :)
解决方案
您希望第二个表中的最早日期也大于第一个表中的日期:
有多种解决方案,包括相关子查询:
SELECT t1.*,
( SELECT MIN( "DATE" )
FROM Table2 t2
WHERE t1.name = t2.name
AND t1.data1 < t2."DATE" ) AS data2
FROM table1 t1
或者
SELECT name,
"COUNT",
data1,
data2
FROM (
SELECT t1.*,
t2."DATE" AS data2,
ROW_NUMBER() OVER ( PARTITION BY t1.name ORDER BY t2."DATE" ) AS rn
FROM table1 t1
INNER JOIN table2 t2
ON ( t1.name = t2.name AND t1.data1 < t2."DATE" )
)
WHERE rn = 1
推荐阅读
- flutter - 是否可以将 pubspec.yaml 文件拆分为多个文件
- jquery - 如何将项目数组作为参数传递给“MVC4 Razor”中的存储过程?
- eclipse - Javadoc 加载减慢了 Eclipse
- codenameone - 如果表单不再是焦点,UITimer 会自动停止在 Codenameone 中吗?
- php - 如何限制这个循环..只有三个循环..感谢您的帮助
- c - 使用方法链接时释放指针的正确方法
- angular - Angular:FileReader - 将文件夹输入中的文件存储在数组中
- python - Selenium 如何向下滚动以获取所有链接
- c# - 我的礼物动画完成后如何添加随机游戏对象?
- python - ImportError:无法导入名称“WebClient”