Subject UPDATE ... RETURNING question


I understand UPDATE ... RETURNING only works with single select. 

I have the following procedure

UPDATE STAFF_EVENTS SET DT_END = current_timestamp(0),

       LEN = dateadd(minute, datediff(minute, dt,  current_timestamp(0)), cast('30.12.1899 00:00' as Timestamp))

        WHERE STAFFCODE = :staffcode and EVENTYPE = 1001 and DT_END is NULL RETURNING LEN, DT_END into DURATION, END_DT; // DURATION and END_DT is variables

which may effect more than one row.  I only want the last row effected values for the RETURNING values.

How must I rewrite this.

Thanks for any help