Я пишу часть кода plsql и столкнулся с проблемой.Хотя счетчик циклов в PLSQL
То, что я пытаюсь сделать, - подсчитать количество экземпляров в столбце, где последние номера и предыдущее число не равны, это будет цикл. Например,
4
3
2
1
1
1
0
0
0
вернет 3, а 4 уменьшится до 1 за три интервала.
4
4
3
2
1
0
0
будет возвращать 0, так как 4 не уменьшается в последнем интервале.
До сих пор я написал
declare
Counter BINARY_INTEGER :=1;
BEGIN
while (select YTDOVERDRAFTS from (select YTDOVERDRAFTS
from WH_ACCTDEPOSIT
where ACCTNBR = xxxxxxxxxx
order by effdate desc)) <>
(select Previous_YTDOVERDRAFTS from (select LAG(YTDOVERDRAFTS,1,0)
OVER (ORDER BY EFFDATE asc) As Previous_YTDOVERDRAFTS
from WH_ACCTDEPOSIT
where ACCTNBR = xxxxxxxxxx
order by effdate desc))
Counter := Counter + 1;
END LOOP;
END;
/
, который дает мне эту ошибку
ли кто-нибудь знает, как решить эту проблему?
Не используйте цикл. Вместо этого используйте самостоятельное соединение. –
Синтаксис: 'WHILE condition LOOP statement END LOOP;'. Я не вижу ключевого слова LOOP в вашем коде, есть только 'END LOOP'. http://docs.oracle.com/cd/E18283_01/appdev.112/e17126/while_loop_statement.htm – krokodilko
Можете ли вы дать мне пример того, как я буду использовать самостоятельное присоединение в этом контексте? – joel