收录日期:2019/06/20 01:19:15 时间:2016/06/07 22:59:42 标签:基础类
create or replace procedure xpro_refreshOrgChart(empType number) is
begin

delete xt_departmentrefresh;

if empType != 0 then
insert into xt_departmentrefresh
  select substr(d.treeid, 0, length(d.treeid) - 2),
         substr(d.treeid, 0, length(d.treeid) - 2),
         d.treeid,
         d.treeid,
         d.departmentid,
         dd.empcount || '人' || '/' ||    d.departmentname  
    from xdepartment d,
         (select dd.treeid,sum(empCount) as empcount from xdepartment dd ,         
          (select d.treeid,count(e.employeeid) empCount
          from xdepartment d ,  (select employeeid,departmentid,type1 from xemployee where lastworkdate is null or lastworkdate > sysdate) e 
          where e.departmentid (+)= d.departmentid and e.type1 = empType
          group by d.treeid )ee where ee.treeid like dd.treeid||'%'
          group by dd.treeid) dd
          where d.treeid = dd.treeid;
else
insert into xt_departmentrefresh
  select substr(d.treeid, 0, length(d.treeid) - 2),
         substr(d.treeid, 0, length(d.treeid) - 2),
         d.treeid,
         d.treeid,
         d.departmentid,
         dd.empcount || '人' || '/' ||    d.departmentname  
    from xdepartment d,
         (select dd.treeid,sum(empCount) as empcount from xdepartment dd ,         
          (select d.treeid,count(e.employeeid) empCount
          from xdepartment d ,  (select employeeid,departmentid,type1 from xemployee where lastworkdate is null or lastworkdate > sysdate) e 
          where e.departmentid (+)= d.departmentid
          group by d.treeid )ee where ee.treeid like dd.treeid||'%'
          group by dd.treeid) dd
          where d.treeid = dd.treeid;
end if;

end xpro_refreshOrgChart;

上面这个储存过程在oracle中是正确,如把转成sql sverver 
Create  procedure xpro_refreshOrgChart 
@empType int
as
begin
  drop table  xt_departmentrefresh

  if (@empType <> 0)
  begin
    insert into xt_departmentrefresh
    select substring(d.treeid, 0, len(d.treeid) - 2),
         substring(d.treeid, 0, len(d.treeid) - 2),
         d.treeid,
         d.treeid,
         d.departmentid,
         dd.empcount+ '人' + '/' +d.departmentname  
    from xdepartment d,
         (select dd.treeid,sum(empCount) as empcount from xdepartment dd ,         
          (select d.treeid,count(e.employeeid) empCount from xdepartment d 
          left join  (select employeeid,departmentid,type1 from xemployee where lastworkdate is null or lastworkdate > sysdate) e 
          on e.departmentid = d.departmentid and e.type1 = @empType
          group by d.treeid )ee where ee.treeid like dd.treeid+'%'
          group by dd.treeid) dd
          where d.treeid = dd.treeid
  end
  else
  begin
    insert into xt_departmentrefresh
    select substring(d.treeid, 0, len(d.treeid) - 2),
         substring(d.treeid, 0, len(d.treeid) - 2),
         d.treeid,
         d.treeid,
         d.departmentid,
         dd.empcount + '人' + '/' +d.departmentname  
    from xdepartment d,
         (select dd.treeid,sum(empCount) as empcount from xdepartment dd ,         
          (select d.treeid,count(e.employeeid) empCount
          from xdepartment d 
          left join (select employeeid,departmentid,type1 from xemployee where lastworkdate is null or lastworkdate > sysdate) e 
          on e.departmentid = d.departmentid
          group by d.treeid )ee where ee.treeid like dd.treeid+'%'
          group by dd.treeid) dd
          where d.treeid = dd.treeid
  end
end 


在线等,判断一个单元是否在 uses列表中??? 这个技术怎么样?? servlet的问题,郁闷啊 关于框架 新手--关于制作数据库db.cs连接类的问题 关于类模板叙述的选择题 过期 过期 关于键盘输入程序实现的疑问 数据库怎么实现组合索引呢? 晚上不加班就不爽,有劲不知往哪使 面试题 Common Controls 6.0 (SP6)如何实现XP样式? 晚上不加班就不爽,有劲不知往哪使 用asp.net做个人博客系统时关于留言板的设置 无法telnet到tomcat 的8080端口 有熟悉乐度网店的吗?问个问题?谢谢 U盘控制软件 这段代码是干什么用的? 这是什么错误啊 期末要做的题目,利用真彩色BMP图片携带保密信息,有人能给点提示吗? vb 和SQl 表的问题 关于iReport的问题 离散数学教程 耿素云、屈婉玲视频教程下载 100高分求一个参数传递 VC ADO内存泄漏问题 基于C/S模式的应用软件系统 改造成B/S模式,需要做哪些改动 windows中如何使用SpinLock? 两个向导生成的表单 怎样在WebBrowser控件中屏蔽鼠标右键