首先谢谢你们的帮助!!这是我的详细说明的新帖子, 分不够我再加。环境:delphi7 adoquery dbgirdeh Access2003
我详细点说明一下,有这样的一个表: ID  部门1  部门2  部门3  部门4  部门5  总销量  平均销量  名次 
1    86     68    94            75    311    77.8    5 (只有4个部门参加销售)
2    100    88    99    105     89    481    96.2    3 
3    89     90    65            99    343    85.8    4 (只有4个部门参加销售)
4    68     56    98            89    311    77.8    5 (只有4个部门参加销售)
5    150    99    150   254     55    708    141.6   2 
6    258    56    269   125           708    177     1 (只有4个部门参加销售)
7    88     64           58           210    70      6 (只有3个部门参加销售)
                                                        
1.其中总销量、平均销量都是计算字段,平均销量是总销量÷参加销售的部门数(这个部门数不固定,不是每个部门每次都参加销售,如何得到参加销售部门的这个数字(或变量)?); 
2.如何对总销量字段进行排序,且允许有相同名次; 

解决方案 »

  1.   

    将该表转置!
    也就是转成下列的格式:
    ID  部门
    1   86
    1   68
    1   94
    1   
    1   75
    2   100
    2   88
    2   99
    2   105
    ...然后再count,sum。条件是部门不为空。
      

  2.   

    非常感谢楼上bdmh starluck hanks_gao wuweiew hduhjh 的热心解答
    要是分几步实现也是可以的
    我昨天打了几场篮球后,在按摩时想到了一个办法,就是把每次参加销售的部门数查出来(通过非空字段.一个销售部门的数据不为空,则记1,几个销售部门的数据不为空,则记几。)再用总销量除以这个数。就是排列名次这里过不了,以前我也问过,但是没有解决。