一个表中存在空记录 其中一列字段a用sum查询的列有负数,但在查询求和时不希望将负数求和。这样的句子怎么写呢?我的语句:select 姓名 count(*) , sum(字段a) from 表 where 字段a>=0  按我的语句sum字段是没问题,可count求出的记录数就会少了字段a<0的那写记录,怎么能两全呢? 

解决方案 »

  1.   

    select 姓名,count(*),sum(字段a1) from (select 姓名,字段a1=case when 字段a>0 then 字段a else 0 end from 表)表1 
      

  2.   

    Access不支持CASE语句的。楼主可以使用Access的内置函数IIF来进行判断,然后进行累加,这样可以获得记录条数,同时不对<0的记录进行累加求和。SELECT COUNT(*), SUM(IIF(字段a>=0, 字段a, 0)) FROM 表
      

  3.   

    select sum(表1.金额)as金额合计from表1这句的意思是讲合计表名为表1的表中金额字段的内容,并改名为金额合计.