5

私は、そのプレッジ ID に基づいてプレッジの最初の支払い期日を返さなければならないこの関数を作成しました。私のテーブルにはすべての誓約の日付があり、支払いは毎月の最初の日に行われ、誓約日の翌月から始まります。匿名ブロックから呼び出す必要があります...それが十分に明確であることを願っています...

ここに機能コードがあります

create or replace function DD_PAYDATE1_SF (

pledge_id dd_payment.idpledge%type)

return  date is 

payment_date  dd_payment.paydate%type;

begin 

select    paydate  into payment_date from dd_payment 
where dd_payment.idpledge = pledge_id;



return payment_date;

end  DD_PAYDATE1_SF;

trunc 関数を試しましたが、その後のすべての支払いが返されるようです。関数を呼び出すと、「正確なフェッチが要求された行数を超えて返される」というエラーが表示されるため、最初の支払いだけが必要ですが、どうすれば解決できますかそれ

4

2 に答える 2

0

selectステートメントを変更する必要があります。最初のものが必要な場合は、次のことができます。

select   paydate  
into     payment_date
from 
       (select paydate 
        from   dd_payment 
        where  dd_payment.idpledge = pledge_id
        order  by paydate)
where    rownum = 1;
于 2013-05-31T15:47:14.787 に答える