create or replace function f_xxcg_kqtjzb

(p_dwid in varchar2, --单位

p_ry in varchar2, --人员姓名(模糊匹配)

p_startDate in varchar2, --开始时间

p_endDate in varchar2 ) --结束时间

return kqtjzb_table_type pipelined

is

/**

* 根据查询条件,统计考勤相关数据

* author: cjianquan

* date: 2015-4-20

*/

v_query_sql varchar2(4000) ; --动态查询sql

type cur_type is REF CURSOR;--定义游标类型

rtn_cur cur_type; --定义游标变量

v_kqtjzb_row kqtjzb_row_type;--考勤统计的行数据

type dwry_type is record(

dw varchar2(100) ,

ryid varchar2(100),

wdkcl int

);

dwry_record dwry_type;

begin

v_query_sql:='select distinct a.rypbsz_ssdw, b.ryzbszmx_ryid,a.RYPBSZ_WDKCL'

||' from tbl_kqxt_ryzbsz a,tbl_kqxt_ryzbszmx b'

||' where a.ryzbsz_id=b.ryzbszmx_fk ';

if p_dwid is not null then

v_query_sql:=v_query_sql||' '||'and a.rypbsz_ssdwid='''||p_dwid||'''';

end if;

if p_ry is not null then

v_query_sql:=v_query_sql||' '||'and b.ryzbszmx_ryxm like ''%'||p_ry||'%''';

end if;

if p_startDate is not null then

v_query_sql:=v_query_sql||' '||'and to_date(b.RYZBSZMX_RQ,''yyyy-MM-dd'') >= to_date('''||p_startDate||''',''yyyy-MM-dd'')';

end if;

if p_endDate is not null then

v_query_sql:=v_query_sql||' '||'and to_date(b.RYZBSZMX_RQ,''yyyy-MM-dd'') <= to_date('''||p_endDate||''',''yyyy-MM-dd'')';

else

v_query_sql:=v_query_sql||' '||'and to_date(b.RYZBSZMX_RQ,''yyyy-MM-dd'') <=sysdate';

end if;

dbms_output.put_line(v_query_sql);

--打开游标

open rtn_cur for v_query_sql;

loop

--循环游标,将记录放至dwry_record

fetch rtn_cur into dwry_record;

exit when rtn_cur%NOTFOUND;

--调用函数f_xxcg_kqtjzb_row得到一行数据

if p_endDate is not null then

v_kqtjzb_row:=f_xxcg_kqtjzb_row(dwry_record.dw,dwry_record.ryid,p_startDate,p_endDate,dwry_record.wdkcl);

pipe row(v_kqtjzb_row);

else

v_kqtjzb_row:=f_xxcg_kqtjzb_row(dwry_record.dw,dwry_record.ryid,p_startDate,to_char(sysdate,'yyyy-MM-dd'),dwry_record.wdkcl);

pipe row(v_kqtjzb_row);

end if;

end loop;

return;

end;

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐