CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  应用实例

一个oracleg与sql的问题

楼主apms_long(fdfd)2006-07-04 10:46:20 在 MS-SQL Server / 应用实例 提问

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    
  问题点数:10、回复次数:2Top

1 楼wts173(Knight Figo)回复于 2006-07-05 20:18:26 得分 0

upTop

2 楼LouisXIV(夜游神)回复于 2006-07-05 20:25:41 得分 0

create   procedure   xpro_refreshOrgChart(@empType   int)  
  as  
  truncate   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   right   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   right   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  
  endTop

相关问题

关键词

得分解答快速导航

  • 帖主:apms_long

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo