CREATE PROCEDURE "dba"."pa_absarv_list"( in a_skoopkood char(16),in a_skoop integer,in a_yksuskood char(16),in a_yksusnr integer,in a_peralg date,in a_perlop date)
BEGIN
  delete from gl_pa_tasu;
  insert into gl_pa_tasu(lepnr,yksusnr,a_aasta,kuup1,kuup2,peralg,perlop)
    select pa_isik.lepnr,pa_isik.yksusnr,2000,
           if pa_isik.kuup1 is null then pa_leping.kuup1 else if pa_isik.kuup1>pa_leping.kuup1 then pa_isik.kuup1 else pa_leping.kuup1 endif endif as pa_kuup1,
           if pa_isik.kuup2 is null then if pa_leping.kuup2 is null then ymd(2500,12,31) else pa_leping.kuup2 endif else if pa_leping.kuup2 is null then pa_isik.kuup2 else if pa_isik.kuup2<pa_leping.kuup2 then pa_isik.kuup2 else pa_leping.kuup2 endif endif endif as pa_kuup2,
           if pa_kuup1>a_peralg then pa_kuup1 else a_peralg endif,
           if pa_kuup2<a_perlop then pa_kuup2 else a_perlop endif
      from pa_isik left outer join pa_leping on pa_isik.lepnr=pa_leping.lepnr left outer join pa_yksus on pa_isik.yksusnr = pa_yksus.yksusnr left outer join skoobid on pa_yksus.skoop=skoobid.skoop
      where ((pa_yksus.skoop = a_skoop or a_skoop = 0) and Left(skoobid.kood,Length(a_skoopkood))=a_skoopkood) and ((pa_isik.yksusnr = a_yksusnr or a_yksusnr = 0) and Left(pa_yksus.kood,Length(a_yksuskood))=a_yksuskood) AND 
            pa_kuup1<=a_perlop and pa_kuup2>=a_peralg
END