我们有一个可以很好地与Crystal Reports集成的ERP。 现在,我们可以通过此应用程序添加过滤器,并将它们传递给报表(不是作为参数,而是以某种方式将其添加到WHERE子句中)。
问题是,在过滤日期时,我们无法在报告中确定用户选择的日期范围(因为我们希望在报告中显示此日期)。
知道如何通过SQL显示这个吗?
我正在考虑使用双表,并选择一个巨大的日期列表,然后使用这些日期的MIN和MAX来确定选择了哪个。问题是,我不能在没有添加大量行的情况下将其加入到我的原始查询中。
到目前为止,我有这个:
SELECT
MIN(DTE) MIN_DTE,
MAX(DTE) MAX_DTE
FROM
(
SELECT
TRUNC(SYSDATE)-(5*365) + ROWNUM AS DTE
FROM
DUAL
CONNECT BY
ROWNUM <= (10*365)
)
WHERE
DTE >= '12-NOV-07'
AND DTE <= '12-DEC-07'
但问题是我无法解决如何将其加入到原始查询而不会扰乱行cont。
还有其他想法吗?
答案 0 :(得分:0)
该查询只返回一行,因此它根本不会扰乱行数,除非有其他事情发生(例如,自动过滤在子查询中不起作用)。
否则,这应该按预期工作:
SELECT q.*, max_min.*
FROM ( ... put your original query here ...) q,
( ... put the subquery that returns one row with max & min here ...) max_min
这就是它的全部。