0
私の演習では、テーブルからすべてのクライアントをループして、> 0.1の値を持つものを表示してください。割引に応じて私はケースを使用する必要があります。 タラにはデータが見つかりません。私がc.id_client = id_minの代わりにc.id_client = 1に置き換えても動作しますが、私はこれを望ましくありません。 コードは:繰り返し構造のケースを使用するpl/sqlの問題
Declare
v_nume clienti_sebi.nume %type;
v_prenume clienti_sebi.prenume %type;
v_count number;
v_discount number;
id_min clienti_sebi.id_client %type;
id_max clienti_sebi.id_client %type;
Begin
select min(id_client), max(id_client) into id_min, id_max from clienti_sebi;
while id_min<id_max
loop
select c.nume, c.prenume, count(p.nr_polita)numar_polite,
(case
when count(p.nr_polita)=1 then 0.1
when count(p.nr_polita)=2 then 0.2
else 0.3 end) DC
into v_nume, v_prenume, v_count, v_discount
from clienti_sebi c, polita p
where c.id_client=p.id_client and c.id_client=id_min
group by c.nume, c.prenume;
dbms_output.put_line(id_min);
if v_discount > 0.1 then
dbms_output.put_line(v_nume || ' ' || v_prenume || ' ' || v_count || ' ' || v_discount);
else null;
end if;
id_min:=id_min+1;
end loop;
end;
/