我有一个我在 Oracle 中创建的视图。它返回行,但是当我通过 Crystal Reports 使用它时,我没有得到任何行。我在视图后面的查询中将其缩小到这个 CTE:
WITH PERIODS AS (
SELECT
ROWNUM-13 RN,
TO_DATE('01-JUL-' || TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE),-6), 'YYYY')) AS FISCAL_YEAR_START,
ADD_MONTHS(TO_DATE('01-JUL-' || TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE),-6), 'YYYY')), ROWNUM-13) AS MONTH
FROM
DUAL
CONNECT BY
ROWNUM <= 24
)
这很奇怪,好像我用以下内容替换了这个 CTE,它可以工作(第二个查询是原始报告的内容,但由于查找财政年度的逻辑问题,它必须更改)。
WITH PERIODS AS (
SELECT
ROWNUM-13 RN,
ADD_MONTHS(TRUNC(sysdate,'yyyy'),6) AS FISCAL_YEAR_START,
TRUNC(ADD_MONTHS(ADD_MONTHS(TRUNC(sysdate,'yyyy'),6), ROWNUM-13),'MONTH') MONTH
FROM
DUAL
CONNECT BY
ROWNUM <= 24
)
知道为什么第二个 CTE 会导致 Crystal 报告不提取任何记录吗?两个查询肯定都返回了行,只是 Crystal Reports 不喜欢第一个查询(尽管我不明白为什么,因为我认为 Crystal 会简单地向 Oracle 查询数据,而不会被后面的内容所困扰风景?!)