2013-01-07 105 views
0

我有一個Oracle查詢,它使用sysdate - NN天前獲取信息。我想編寫一份報告,其中包含3個數據集:sysdate - N,sysdate - N - 1,sysdate - N - 2在iReport中使用變量。我不清楚如何做到這一點。我相信所有三個數據集的查詢都應該完全一樣,但變量的值應該每次增加1,即sysdate - (N + 0),sysdate - (N + 1),sysdate - (N + 2)。我需要什麼類型的增量器來完成這個?iReport中每個數據集的遞增(或遞減)變量值

+0

嗨,jshin - 你想你的輸出看起來像什麼?我很確定你可以有1個查詢和使用組來分隔數據,但給我們一些更多的信息。 – Lisa

回答

2

你試過類似的東西嗎?

SELECT DATECOL, COL1, COL2 
FROM THETABLE 
WHERE DATECOL BETWEEN (SYSDATE-($P{N}+0)) AND (SYSDATE-($P{N}+2)) 
ORDER BY DATECOL 

然後,在iReport中,爲DATECOL創建一個分組樂隊,並將COL1和COL2放入您的Detail 1樂隊。這將分隔每個時間段的結果。

+0

我是新來的報告軟件,並不理解樂隊實際意味着什麼。這就說得通了。謝謝 –

+0

有一點要記住,樂隊不會像SQL查詢組合那樣分組。如果您需要在聚合函數的查詢中執行分組,請繼續執行此操作。還要確保你的輸出是有序的。在上面的示例中,如果每個DATECOL值有多個記錄,並且日期不按順序,那麼您可能會看到每個DATECOL值有多個條帶,因爲iReport遍歷數據並遇到日期值的更改。在創建樂隊並在實際中看到它之後,這可能會更有意義。 – Lisa