我要按照person表中的Department(部门)字段统计20033表中整型整型字段salary4(工资项目:实发工资)的总和,即求每个部门的实发工资总和,我用到了下面sql语句调试出错??为什么??
select   person.Department, sum(distinct 20033.salary4)  from 20033, where 20033.StafferID=person.StafferID group by person.Department
扑捉异常的错误为:语法错误 (操作符丢失) 在查询表达式 'sum(distinct 20033.salary4),另外如果执行成功返回记录集是不是有多少个部门就有多少个记录??
我用的是ado。

解决方案 »

  1.   

    错了!sql语句还掉了一个person
    select   person.Department, sum(distinct 20033.salary4)  from 20033,person where 20033.StafferID=person.StafferID group by person.Department
      

  2.   

    SQL 会把你的 20033 看作是个数值,如果你一定要把它当作表的名称,请使用[]把它框起来,所以正确的写法是:
    select person.Department, sum([20033].salary)
    from [20033],person
    where [20033].StafferID = person.StafferID 
    group by person.Department执行成功返回记录集的的确是有多少个部门就有多少个记录
      

  3.   

    错误依然存在,我用的是access,试了加不加[]都一个样。他就是说:语法错误 (操作符丢失) 在查询表达式 'sum(distinct 20033.salary4),到底那有问题了?
      

  4.   

    jet sql中没有sum(distinct number )这个函数
      

  5.   

    那为何select sum(Item) from table  等形式又可以?????
      

  6.   

    select sum(salary4)  from ( select distinct salary4 FROM 20033 ) AS aTable
      

  7.   

    我用到了两个表了!没办法了,只好先建立一个view,再统计,我是这样做的:create view statistic as select person.Department,[20033].salary4 from 20033, person where [20033].StafferID=person.StafferID
    followed by:
    select Department, sum(salary4) from statistic group by DepartmentAll is ok!
      

  8.   

    那个 distinct 是个函数嘛,几时函数会写成,distinct number?变成了<函数名><空格><参数>这个样子?至少应该打个括号嘛,写成 sum(distinct([20033].salary4)) 不就可以了?
      

  9.   

    select   person.Department, sum(20033.salary4)  from 20033,person where 20033.StafferID=person.StafferID group by person.Department