现在有table a ,table b, table c,table d其中表的结构如下:
a {
     recno ,
     acol1,(类型假设有两种type1,type2和d表中的dcol1对应)
     acol2,
     acol3,......(其实不止这些列)}
  比如 :
      a001 , type1, a2,a3 ...      a002 ,type2 ,a2 ,a3 ...
       
(其实不止这些记录)
..... 
b{
   recno,
   aRecno,(与a中的recno对应)
   bcol1,
   bcol2,
   bcol3,...
}
比如 :
      b001 , a001, b2,b3 ...      b002 ,a002 ,b2 ,b3 ...
      b003 ,a002 ,b2 ,b3 ...  c {
    recno,
    ccol1,
    ccol2,(存放b中的recno如果有多个用','分开,即可以选择b中多条记录来开工)
    ccol3,(开始工作时间)
    ccol5,(开工人)
    ccol4,(完成工作时间)
    ccol6,(完工人)....
}
  记录:比如 
     比如 :
      c001 , [b001,b002], c2,c3 ,c4,c5...      c002 ,b001 ,c2 ,c3,c4,c5 ...
    
d{
    recno,  
    dcol2,(预估工时) number(7,3)
    dcol1(和a中acol1对应),.... } d表记录比如 : recno01,8,type1  ;;   recno02,7,type2  (其实不止这些记录)
 a 表记录 比如 :  recno001,type1,acol3,acol4 (其实不止这些记录)可以看到 当a 表中acol1字段为typ1时,对应d表中的预估工时是8,type2时是7        
   现在我要的结果是:显示a,b表中胡全部对应记录(a.recno = b.aRecno) 和 对应的预估工时sum(d.dcol2),开始工作时间(c.ccol3),结束工作时间(c.ccol4),实际工时间(ccol4 - ccol3)(注意:当c表中存在多个b的recno时,即选择多个b中的记录来工作,假设为2条记录,选择的记录在表a中的对应的acol1的值假设分别为type1(对应d中工时为8),type2,此时每条记录预工时为(8+7)/2,实际工时为(ccol4 - ccol3)/2,)         现在我要的结果是:显示a,b表中胡全部对应记录(a.recno = b.aRecno) 和 对应的预估工时d.dcol2,sum(d.dcol2),开始工作时间(c.ccol3),结束工作时间(c.ccol4),实际工时间(ccol4 - ccol3), sum(ccol4 - ccol3)  
  比如: 
      b表中 这条记录         c001 , [b001,b002], c2,c3 ,c4,c5...
      查询结果为:
       type1  b001 ,c5, c4 - c3 ,sum(c4 - c3),(8 + 7 ) /2 , sum((8 + 7 ) /2) ;
       type2  b002 ,c5, c4 - c3 sum(c4 - c3),(8 + 7 ) /2 , sum((8 + 7 ) /2) ;
      
        
1

解决方案 »

  1.   

     type1  b001 ,c5, c4 - c3 ,sum(c4 - c3),(8 + 7 ) /2 , sum((8 + 7 ) /2) ; 
          type2  b002 ,c5, c4 - c3 sum(c4 - c3),(8 + 7 ) /2 , sum((8 + 7 ) /2) ; 
    为 
    a中的acol1的值(type1), b表中recno(b001),c表中开工人(c5),完工时间-开工时间(c4 - c3),和,预估工时(8+7)/2,和
      

  2.   

    C表中 这条记录         c001 , [b001,b002], c2,c3 ,c4,c5...