plsql - PL/SQL increment in a WHILE loop -
i’m trying calculate total number of items can purchased given amount of money. this, trying create block while loop increment item's cost until dollar value ($100) met, can’t figure out how calculate loop correctly.
declare lv_totavail_num number(8,2) := 100; lv_itemprice_num number(8,2); lv_totamt_num number(8,2); lv_loopnum_num number(8,2) := 0; begin dbms_output.put_line('total starting amount: ' || lv_totavail_num); select price lv_itemprice_num bb_product idproduct = 4; dbms_output.put_line('price: ' || lv_itemprice_num); while lv_totavail_num >= lv_itemprice_num loop lv_totavail_num := lv_itemprice_num * lv_loopnum_num; lv_loopnum_num := lv_loopnum_num + 1; end loop; dbms_output.put_line('number of items purchased can purchased: ' || lv_loopnum_num); dbms_output.put_line('total amount: '|| lv_loopnum_num * lv_itemprice_num); end;
your while has incorrect content. use lv_totamt_num calculate prices. there other small things. check below:
declare lv_totavail_num number(8,2) := 100; lv_itemprice_num number(8,2) := 0; lv_totamt_num number(8,2) := 0; lv_loopnum_num number(8,2) := 0; begin dbms_output.put_line('total starting amount: ' || lv_totavail_num); select price lv_itemprice_num bb_product idproduct = 4; dbms_output.put_line('price: ' || lv_itemprice_num); while lv_totavail_num >= lv_totamt_num loop lv_loopnum_num := lv_loopnum_num + 1; lv_totamt_num := lv_itemprice_num * lv_loopnum_num; end loop; lv_loopnum_num := lv_loopnum_num -1; dbms_output.put_line('number of items purchased can purchased: ' ||lv_loopnum_num ); dbms_output.put_line('total amount: '|| lv_loopnum_num * lv_itemprice_num); end;
Comments
Post a Comment