0

我们有一个与 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'

但问题是我无法弄清楚如何在不扰乱连续行的情况下将其加入到我的原始查询中。

还有其他想法吗?

4

1 回答 1

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

就是这样。

于 2012-11-09T10:48:37.787 回答