Oracle SQL:连接具有不同ID的日期表

拉文

这是我的数据样本:

DATES          ACCT_ID           AMT
31-JAN-13   0000000117  137.6
31-MAY-13   0000000117  245.96
30-JUN-13   0000000117  8162.97
31-JUL-13   0000000117  158.85
31-OCT-13   0000000117  55.44
30-NOV-13   0000000117  0
31-JAN-14   0000000117  485.78
28-FEB-14   0000000117  588.28
31-MAR-14   0000000117  2315.56
31-JAN-13   0000000133  8291.45
30-APR-13   0000000133  21241.54
31-JUL-13   0000000133  22185.75
31-AUG-13   0000000133  19770.89
30-NOV-13   0000000133  15168.48
31-DEC-13   0000000133  11376.65
28-FEB-14   0000000133  11910.58
31-MAR-14   0000000133  8893.84
30-APR-14   0000000133  12093.9

我想要做的就是将此表与两年期中所有月末日期的表连接起来。即:

DATES
31-JAN-13
28-FEB-13
31-MAR-13
30-APR-13
31-MAY-13
30-JUN-13
31-JUL-13
31-AUG-13
30-SEP-13
31-OCT-13
30-NOV-13
31-DEC-13
31-JAN-14
31-JAN-14
28-FEB-14
31-MAR-14
30-APR-14

对于原始表中每个值都不可用的日期,我想在结果中显示该值,复制ACCT_ID并将AMT设置为null

例如,我想要:

31-JAN-13   0000000117  137.6
28-FEB-13   0000000117  null
31-MAR-13   0000000117  null
30-APR-13   0000000117  null
31-MAY-13   0000000117  245.96
......

我当前代码的简化版本是:

select * from table_amt
right join table_dates
using (acct_id)
order by (dates)

但是,由于我要执行join不同的帐户,因此简单的右联接不起作用例如,请注意,帐户0000000117上有一条记录在31-MAY-13上,但没有0000000133,在我的结果中没有添加对日期31-MAY-13和帐户0000000133的空观察,这是我想要的。

我该如何解决这个问题?

谢谢!

克雷格

假设您的体重至少为10g,则可以使用Partition Outer Join:

select dt.dates, d.acct_id, d.amt
from table_dates dt
    left outer join table_amt d partition by (acct_id)
        on d.dates = dt.dates
order by d.acct_id, to_date(dt.dates);

有关此方法的更多信息,请阅读:http : //docs.oracle.com/cd/E11882_01/server.112/e25555/tdpdw_sql.htm#TDPDW00721

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Oracle SQL比较日期

来自分类Dev

在Oracle SQL中,如何连接具有多值列的表

来自分类Dev

Oracle SQL日期格式

来自分类Dev

连接3个表Oracle SQL

来自分类Dev

与具有排序结果集的表连接时,与Ms-Sql和Oracle相比,mySql的不同行为

来自分类Dev

Oracle SQL-如何获取具有最大日期的记录的分配ID

来自分类Dev

Oracle SQL Developer不同语言的日期

来自分类Dev

子查询-查找具有不同ID的重复项-Oracle

来自分类Dev

oracle sql query:获取具有相同ID的表中所有条目的单独列

来自分类Dev

连接多个表Oracle

来自分类Dev

具有多个表联接的Oracle LISTAGG

来自分类Dev

当列结果略有不同时,SQL(Oracle)连接

来自分类Dev

在Oracle SQL中,如何连接具有多值列的表

来自分类Dev

基于不同的基于时间的事件的ORACLE SQL连接表

来自分类Dev

Oracle SQL的id具有不同的值时

来自分类Dev

不同表上的复合索引ORACLE SQL

来自分类Dev

oracle plsql-具有不同表的select语句

来自分类Dev

具有不同键结构的ORACLE SQL混合表

来自分类Dev

选择具有最长日期的重复行和空值来选择不同的行(Oracle)

来自分类Dev

在Oracle SQL中联接具有常见列的表

来自分类Dev

oracle-汇总具有不同值的分组表

来自分类Dev

具有两个表的Oracle SQL分层查询

来自分类Dev

ORACLE SQL - 不连接比较日期

来自分类Dev

具有多个条件的 Oracle SQL 连接子查询

来自分类Dev

使用 ORACLE SQL 从具有不同 ID 的同一个表中查找重复项?

来自分类Dev

Oracle sql 不同的 id 但相同的值

来自分类Dev

Oracle SQL 在表中插入日期

来自分类Dev

在 Oracle SQL 中合并具有相同 ID 但不同列值的行

来自分类Dev

Oracle SQL 选择具有最早时间的日期时间

Related 相关文章

热门标签

归档