SQL-获取WHERE子句中使用的日期?

时间:2012-11-09 03:41:27

标签: sql oracle date

我们有一个可以很好地与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。

还有其他想法吗?

1 个答案:

答案 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

这就是它的全部。