求一企业级应用存储过程,超有挑战性,只有三个表,字段极少!在线等
求一存储过程 
 输入参数: 
 01.fromDate   char   起始日期,如:2007/02/01 
 02.toDate   char         终止日期,如:2007/03/01   
 A表:休日表[只有一个字段] 
 存储单位所有的休息日 
 -------------------------- 
 字段: 
 riqi      Datetime   日期[主键]     
 B表:销售员表 
 存储单位所有销售员 
 -------------------------- 
 字段: 
 gonghao         char(10)      ID[主键] 
 name                  char(20)      姓名 
 haspart         bit                     是否有职务[1有职务]   
 C表:销售员访客表 
 存储销售员访客纪录 
 一个销售员在一天可以有多条纪录 
 -------------------------- 
 字段: 
 visit_num   char(10)   访客ID[主键] 
 dept                  char(10)   销售员部门 
 visit_date   Datetime   访客日期 
 gonghao         char(10)   销售员ID   
 求以下格式报表: 
 输入参数: 
 01.fromDate   char   起始日期,如:2007/02/01 
 02.toDate   char         终止日期,如:2007/03/01   
 返回: 
 每个部门的销售员数(过滤有职务的),在该时间段内的 
 应访客行程数(销售员数*有效天数)、实际访客数   
 定义: 
 1.销售员数 
 (过滤有职务的,即B表中的haspart=0部门销售员) 
 2.有效天数: 
 (2007/02/01到2007/03/01)总天数减掉 
 (2007/02/01到2007/03/01)之间的休日数(A表), 
 如果   day(toDate)= '20 '   and   day(fromdate)= '21 '    
 并且   [month(toDate)-month(fromdate)= '1 '      OR    
                Month(ToDate)   =    "1 "   And   Month(FromDate)   =    "12 "]    
 时,还要多减一天   
 3.应访客行程数   =   销售员数*有效天数 
 4.实际访客数 
 该部门每个无职务的销售员实际的行程数的累加和   
 5.访客率=实际访客数/应访客行程数   *   100%   [保留两位小数]   
 举例: 
 A部门有三个业务员,本月有效日为18天,该部门应访客行程数为3*18=54次 
 其中有一个业务员请2天假,导致C表中无该业务员在该两天的纪录, 
 则该部门实际访客次数=2*18+1*16=52次   
 背景: 
 理论上每个销售员   在每个有效日(fromDate到toDate日期减掉fromDate到toDate休日) 
 都要至少有一次访客纪录        
 //   按部门对C表分组   
 =========================================================== 
 部门   销售员数      应访客行程数   实际访客数      访客率 
 ----------------------- 
       A               3                              36                                       30               83.33% 
       B               4                              40                                       38               95.00% 
 ===========================================================
------解决方案--------------------不对吧.....你怎么计算销售人员?   
 销售人员表与部门表没有联系. 
 B虽然有全体销售人员了. 
 例如: C里,在3月初某销售人员就请假没访客.一直到3月15号. 
 你查3-1 到 3-15 时, 某部门总销售人员其实就会比实际的少一人. 怎么办?     
------解决方案--------------------销售员和时间段什么关系??   
 某个时间段以内,某个销售员没有访客,就认为这个销售员不存在吗??