ALTER FUNCTION "dba"."get_ls_eelmnait_kuup"( in a_maksuid integer, in a_kuup date )
RETURNS date
BEGIN
  declare ld_kuup date;
  select first "ls_kogused"."kuup" into ld_kuup from "ls_kogused" where "ls_kogused"."maksuid"=a_maksuid and "ls_kogused"."kuup"<a_kuup order by "ls_kogused"."kuup" desc;
  if ld_kuup is null then
    select "ls_mooturid"."reading_date" into ld_kuup from "ls_maksud" left outer join "ls_mooturid" on "ls_maksud"."mooturid"="ls_mooturid"."id" WHERE "ls_maksud"."id"=a_maksuid and "ls_mooturid"."reading_date"<a_kuup
  end if;
  if ld_kuup is null then
    set ld_kuup=ymd(2000,1,1)
  end if;
  return ld_kuup;
END