在DELPHI+ORACLE中开发中使用三层架构SOCKET+RemoteDataModule一些简单的SUM()求和执行不了。驱动程序程常,因为我连接过别的ORALCE数据库可,但
就是连一个数据执行不了。不知道是什么原因。在线等待急
例子 : 老 提示”非单组分组函数“本人MSN :[email protected]
select sum(a.recordcount) 合计,
sum(decode(a.ServiceType,1,a.recordcount,0)) 点播总数,
sum(decode(a.ServiceType,2,a.recordcount,0)) 定制总数,
sum(decode(a.ServiceType,3,a.recordcount,0)) 退订总数 from mt_as_msg_all a   where a.COMMITTI
 between to_date('2007-05-28 0:00:00',
'YYYY-MM-DD HH24:MI S') and to_date('2007-06-18 23:59:59','YYYY-MM-DD HH24:MI S')  

解决方案 »

  1.   


    试试这个~~~~~~~~~~~select   sum(a.recordcount)   合计, 
    sum(decode(a.ServiceType,1,a.recordcount,0,null))   点播总数, 
    sum(decode(a.ServiceType,2,a.recordcount,0,null))   定制总数, 
    sum(decode(a.ServiceType,3,a.recordcount,0,null))   退订总数   from   mt_as_msg_all   a       where   a.COMMITTI 
      between   to_date( '2007-05-28   0:00:00 ', 
    'YYYY-MM-DD   HH24:MI:SS ')   and   to_date( '2007-06-18   23:59:59 ', 'YYYY-MM-DD   HH24:MI:SS ')  
      

  2.   

    先在SQL*PLUS 里面查询下。
      

  3.   

    应该用group by 进行分组.
    没有分组就连用两个SUM统计不同的字段是错误的!
      

  4.   

    你的select中的列是不是还有其它 不是sum 或 count的项?
    这个需要group by这些项
      

  5.   

    sum和count函数都是需要用group by语句分组求和的
    你应该这么写:
    select   recordcount,
    sum(decode(a.ServiceType,1,a.recordcount,0))   点播总数, 
    sum(decode(a.ServiceType,2,a.recordcount,0))   定制总数, 
    sum(decode(a.ServiceType,3,a.recordcount,0))   退订总数   from   mt_as_msg_all   a       where   a.COMMITTI 
      between   to_date( '2007-05-28   0:00:00 ', 
    'YYYY-MM-DD   HH24:MI   S ')   and   to_date( '2007-06-18   23:59:59 ', 'YYYY-MM-DD   HH24:MI   S ')    
    group by  recordcount至于求和语句只能单独写
    select sum(recordcount) from mt_as_msg_all;