sqlstrInsertTb:= '
insert into tmp20sAAA select caid,sum(timeend-timebegin)*86400
from 
(
select * from '||sTableName||'
where timeend >= to_date('''||i_sBeginTime||''',''YYYYMMDDHH24MISS'') 
  and timebegin < to_date('''||i_sEndTime||''',''YYYYMMDDHH24MISS'')
      and caTYPE in (0,5,13)
)
group by callid
' ;
sqlstrt20:= '
select count(*) from tmp20sAAA where wtforagent <= 20
' ;
为何上面的group by失效?
--表tmp20sAAA 两字段
tRpt_tmp20sAAA 
caid  wtforagent 

解决方案 »

  1.   

    从表'sTableName',按callid[同caid]分组查出符合条件的记录插入caid和sum(timeend-timebegin)*86400到表tmp20sAAA [字段caid是varchar2、wtforagent是number]插入到表tmp20sAAA 的数据,caid是唯一的,但是sum(timeend-timebegin)*86400却不是按相同caid分组的和,似乎是某条caid记录里的(timeend-timebegin).
    请指教……
      

  2.   

    噢~~~好难理解后面LZ说的话,自言自语么。代码看起来没什么问题的真的,要不,LZ自己检查下表去?
      

  3.   

    唉,可能是哪逻辑跟条件错了~caid,timeend,timebegin,caTYPE等字段
      

  4.   

    select caid,
    group by callid