我很難在Oracle SQL Developer中使用它。試圖獲得PL/SQL WHILE LOOP與變量一起工作
我想開始一個查詢,然後在它的第一對數行之後運行一個while循環來遍歷數週。我還沒有完成整個查詢,因爲我甚至無法弄清楚如何使用WHILE LOOP這樣的工作。
下面是一個簡單的例子,我知道我需要指定一些日期字段等,但希望你能得到我要去的東西。基本上試圖爲每週交易創建一個新列。默認的Oracle WW或IW值不適用於我們。
我知道這個查詢中有很多其他的調整需要理順,不太清楚逗號應該在哪裏而不是。我不習慣在SQL Developer中工作來完成這些任務。感謝您的任何反饋!
DECLARE
MyDayVar VARCHAR2(20) := '05-JAN-14'; --sets the start of Week2
MyWeekVar VARCHAR2(20) := '2';
SELECT Customer_Name,
sum(CASE when PLANNED_SHIP_DATE >= '01-JAN-14' and PLANNED_SHIP_DATE <= '04-JAN-14' then (REVISED_QTY_DUE - QTY_SHIPPED) * SALE_UNIT_PRICE end) as Wk1 --trying to get Week 1 of 2014,
WHILE
MyDayVar =< '01-JAN-15'
LOOP
sum(CASE when PLANNED_SHIP_DATE >= :MyDayVar and PLANNED_SHIP_DATE <= (:MyDayVar + 7) then (REVISED_QTY_DUE - QTY_SHIPPED) * SALE_UNIT_PRICE end) as Wk + :MyWeekVar --trying to get Week 2 of 2014 and display as 'Wk2',
MyDayVar = :MyDayVar + 7; --add 7 days to MyDayVar to prepare for the next day;
MyWeekVar = :MyWeekVar + 1; --add 1 to the Week Variabkle;
FROM CUSTOM_ORDERS_TABLE
WHERE PLANNED_SHIP_DATE => '01-JAN-14' --only grab year 2014 data
END LOOP
你正在使用s字符串比較來檢查'日期'嗎? 「 – alfasin 2014-09-04 19:20:06
」默認的Oracle WW或IW值不適用於我們。「爲什麼不? – APC 2014-09-05 07:05:17