由于上次我并未真正提出正确的要求,因此我尝试对此问题进行一些细化。我本质上是在做这个查询:
Select count(orders) From Orders_Table Where Order_Open_Date<=To_Date('##/##/####','MM/DD/YYYY') and Order_Close_Date>=To_Date('##/##/####','MM/DD/YYYY')
其中## / ## /
/ ####定义为变量,然后将计数按该变量分组,那么我可以使它起作用,但我不确定如何做到这一点- 或在那里也可能是另一种方式。我目前在SQL开发人员上使用Oracle SQL。感谢您的任何投入。
您可以使用这样的“行生成器”技术 (针对Hogan的评论进行编辑) :
Select RG.Day, count(orders) From Orders_Table, (SELECT trunc(SYSDATE) - ROWNUM as Day FROM (SELECT 1 dummy FROM dual) CONNECT BY LEVEL <= 365 ) RG Where RG.Day <=To_Date('##/##/####','MM/DD/YYYY') and RG.Day >=To_Date('##/##/####','MM/DD/YYYY') and Order_Open_Date(+) <= RG.Day and Order_Close_Date(+) >= RG.Day - 1 Group by RG.Day Order by RG.Day
这应该列出上一年的每一天以及相应的订单数量