收录日期:2019/09/19 00:18:06 时间: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 


那位高手帮小弟看一下那里错了!存储过程 java并发事务数据库等一系列问题 导师很贱,我很无语 C# 操作SQL SQL中的事务是先进先执行还是先进后执行?大家来看问题 ARM9 SD卡驱动 SQL 一张表内的内连接查询 数据控件绑定数据的时候还要加字符怎么加 求助啊,急! 下拉列表在使用前设置成空,应该怎么做,在线等 使用google maps API3 加载自己的KML 文件始终不能正常显示 c# winform程序 截图相关 收集一些简洁的小函数 关于传值问题 previousSibling和nextSibling,FF和IE9中会把回车行换当作一个#TEXT节点。 INNODB引擎启动不了, 数据提交的是后为什么要对字符串进行JS,HTML,CSS过滤 谁知道JSP网上书店(模仿当当书店的那个)怎么进入管理员操作 请大家帮忙修改一个JScript的小问题~谢谢!! 第一次使用InstallAnyWhere打包,启动时遇到了“系统找不到路径”的问题,我找不出问题出在哪里,大家谁用过,帮帮忙,先谢谢大家啦! 没有找到 winspool.drv,因此这个应用程序未能启动。重新安装应用程序可能会修复此问题 请问eclispe中如下的错误提示,是什么意思啊? 写程序,发现了一个很严重的事 函数GetProcAddress()使用疑问 关于子窗口显示的问题。 谁知道怎么同时画两条线?教教我啊!!! 建立链表问题~~~急!! 嗯哼。 VB怎么对WEBBROWSER控件发送键盘消息 谁帮忙看看我这个错误? 行转列 循环 行数不定