现在有table1:
部门人数  部门总钱数………人数………钱数…………人数………钱数
5      6000
现在用:
select 部门总钱数/部门人数 from table1
如果部门人数是0的话,就会出错,怎么能不出错?不能用where 部门人数<>0  因为有很多人个数字段。

解决方案 »

  1.   

    我想知道如果0人还有可能有钱数吗?
    if 部门人数<>0 then
    begin
    ....
    end;
    else begin
    ....
    end;
      

  2.   

    不过关注一下有没有非常好的方法解决了。看看有经验的程序员
    if 部门人数<>0 then
    begin
    select 部门总钱数/部门人数 from table1
    end;
    else begin
    ....
    end;
      

  3.   

    是一条记录里有好几个人数和钱数,比如1单位1部门的有3人,1单位2部门的有5人这在一种记录里,报表打印出来必须是这种格式。所以1单位1部门可能没人,但是1单位2部门可能有人,所以一条记录里不会人数都是0。可是现在算平均值这么一除就出问题了。
    光用SQL语句有没什么解决办法?报表里面不好掺程序,直接用SQL出结果应该可以吧?
      

  4.   

    select 部门总钱数/sum(1部门人数+2部门人数+3部门人数)
    from table1
    group by 部门总钱数
      

  5.   

    如果是ACCess可以用:
    select 部门总钱数/iif(部门人数=0,1,部门人数) from table1
      

  6.   

    select 部门总钱数/sum(1部门人数+2部门人数+3部门人数)
    from table1
    group by 部门总钱数
      

  7.   

    没看懂我的意思。
    是要这样的结果:
    select 部门1钱数/部门1人数 as 部门1平均,部门2钱数/部门2人数 as 部门2平均
    from table1
    这样的话,只要有一个部门的人数是0,就出错。
      

  8.   

    /*try*/
    select 
      (case 部门1人数 when 0 then 0 else 部门1钱数/部门1人数 end) as 部门1平均,
      (case 部门2人数 when 0 then 0 else 部门2钱数/部门2人数 end) as 部门2平均
    from table1
      

  9.   

    我是用ADOQuery连的access的数据库,不能用case
      

  10.   

    /*try again*/
    select 
      iif(部门1人数=0,null,部门1钱数/部门1人数) as 部门1平均,
      iif(部门2人数=0,null,部门1钱数/部门2人数) as 部门2平均
    from table1
      

  11.   

    select 
      iif(部门1人数=0,null,format(部门1钱数/部门1人数, "0.00")) as 部门1平均,
      iif(部门2人数=0,null,format(部门2钱数/部门2人数, "0.00")) as 部门2平均
    from table1
      

  12.   

    授人以鱼不如授之以渔~~
    告诉你怎么找到答案~~
    打开搜索网页,比如:“http://search.csdn.net”~~
    搜索关键字:“access 保留 小数 函数”~~
    这不就搜到了~~
    以后有这样的问题学着自己先搜~~
      

  13.   

    select 
      (case 部门1人数 when 0 then 0 else 部门1钱数/部门1人数 end) as 部门1平均,
      (case 部门2人数 when 0 then 0 else 部门2钱数/部门2人数 end) as 部门2平均
    from table1
      

  14.   

    select 部门1钱数/isnull(部门1人数,1) as 部门1平均,部门2钱数/isnull(部门2人数,1) as 部门2平均 from table1
    如果是空,就是部门钱数/1
      

  15.   

    保留小数的问题还是没解决。
    select 部门,合计人数,合计,
           主任人数,iif(主任人数=0,0,format(主任/主任人数,"0.00")) as 主任人均
    from 
    这样查询无法执行。我哪写错了?