1
我真的很新PL/SQL在oracle查询中相同的行数
我试图做一个查询来显示一些购买和他们的日期。问题是,我想确保查询的结果返回给我某种group-by,每个日期的行数相同,具体取决于最大子集的数量。
下面是关于甲骨文的例子:
select date_val, cost
from test
order by date_val
,给了我这样的结果:
date_val cost
03/04/2017 950907.12
03/04/2017 10935431.88
03/04/2017 1411410
03/04/2017 504604380
04/04/2017 1348410
05/04/2017 1379000560
05/04/2017 1208340
05/04/2017 1735016.32
06/04/2017 15913063.36
06/04/2017 1383744.64
06/04/2017 1522710
06/04/2017 1172111669
07/04/2017 278336734
07/04/2017 579649.52
在这种情况下,最大的子集的长度是4(日期03和06 ),所以我想完成表格,并得到这样的东西:
date_val cost
03/04/2017 950907.12
03/04/2017 10935431.88
03/04/2017 1411410
03/04/2017 504604380
04/04/2017 1348410
04/04/2017 0
04/04/2017 0
04/04/2017 0
05/04/2017 1379000560
05/04/2017 1208340
05/04/2017 1735016.32
05/04/2017 0
06/04/2017 15913063.36
06/04/2017 1383744.64
06/04/2017 1522710
06/04/2017 1172111669
07/04/2017 278336734
07/04/2017 579649.52
07/04/2017 0
07/04/2017 0
任何建议都会非常有帮助。
在此先感谢!
是'date'数据类型中的日期吗? (如果没有,为什么不呢?)如果是,什么是时间组件?在Oracle中,'date'总是具有时间分量,即使它不显示在屏幕上。有可能你的日期的时间是'00:00:00'(通常的做法是让日期成为“纯粹”的日期,没有时间) - 是这种情况吗? – mathguy
另外,如果某个日期完全缺失(假设04/04没有行),您是否仍然希望将它添加到结果中,四行,每个行的成本都是0? – mathguy
你好!是的,数据类型是日期,但正如你所说,它们是纯日期,没有时间。 而对于另一个问题,我只想显示在桌子上的日期,如果04/04没有出现,那么我不想看到它,但如果它至少有1条记录,我希望它填写其余记录与成本0 –