一個變量循環查詢我已經基於與我得到我所需要的某一天數據的日期查詢(可以說SYSDATE-1):與甲骨文
SELECT TO_CHAR(START_DATE, 'YYYY-MM-DD') "DAY",
TO_CHAR(TRUNC(MOD(ROUND(AVG((END_DATE - START_DATE)*86400),0),3600)/60),'FM00') || ':'
|| TO_CHAR(MOD(ROUND(AVG((END_DATE - START_DATE)*86400),0),60),'FM00') "DURATION (mm:ss)"
FROM UI.UIS_T_DIFFUSION
WHERE APPID IN ('INT', 'OUT', 'XMD','ARPUX')
AND PSTATE = 'OK'
AND TO_CHAR(START_DATE, 'DD-MM-YYYY') = TO_CHAR(sysdate-1, 'DD-MM-YYYY')
AND ROWNUM <= 22
GROUP BY TO_CHAR(START_DATE, 'YYYY-MM-DD');
給我這個(如預期):
╔════════════╦══════════╗
║ DAY ║ DURATION ║
╠════════════╬══════════╣
║ 2016-02-28 ║ 303║
╚════════════╩══════════╝
現在我試圖添加一個循環來獲得2015年10月10日以來的每一天的結果。服用點是這樣的:
╔═══════════╦══════════╗
║ DAY ║ DURATION ║
╠═══════════╬══════════╣
║ 2016-02-28║ 303║
╠═══════════╬══════════╣
║ 2016-02-27║ 294║
╠═══════════╬══════════╣
║ ...║ ...║
╠═══════════╬══════════╣
║ 2015-10-10║ 99║
╚═══════════╩══════════╝
我試圖把查詢循環中:
DECLARE
i NUMBER := 0;
BEGIN
WHILE i <= 142
LOOP
i := i+1;
SELECT TO_CHAR(START_DATE, 'YYYY-MM-DD') "DAY",
TO_CHAR(TRUNC(MOD(ROUND(AVG((END_DATE - START_DATE)*86400),0),3600)/60),'FM00') || ':'
|| TO_CHAR(MOD(ROUND(AVG((END_DATE - START_DATE)*86400),0),60),'FM00') "DURATION (mm:ss)"
FROM UI.UIS_T_DIFFUSION
WHERE APPID IN ('INT', 'OUT', 'XMD','ARPUX')
AND PSTATE = 'OK'
AND TO_CHAR(START_DATE, 'DD-MM-YYYY') = TO_CHAR(sysdate - i, 'DD-MM-YYYY')
AND ROWNUM <= 22
GROUP BY TO_CHAR(START_DATE, 'YYYY-MM-DD');
END LOOP;
END;
,但我得到這個錯誤:
Error report -
ORA-06550: line 7, column 5:
PLS-00428: an INTO clause is expected in this SELECT statement
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
誰能告訴我怎麼樣完成這個?
感謝您的輸入。它確實有幫助。 – Svperstar