2013-02-15 61 views
0

同样存在悍然再用错误..在SQL Developer的循环

不是一个单一群组功能

我有一个空表mig_temp1,我想,以填补观察)) 这个选择有什么问题?

begin 
    for j in 1..7 loop 
    for t in 0..32 loop 
     insert into mig_temp1 (report_date, portfolio, bucket, Q) 
     select add_months(to_date('31.10.2014','DD.MM.YYYY'),-t), 
      cp.portfolio, j, count(*) 
     from proba_cft pr, credtoportfolio cp 
     where pr.credit_num = cp.credit and pr.dpd_47 between 30*(j-1)+1 and 30*j; 
    end loop; 
    end loop; 
end; 
+3

您选择的总和; 'count(*)'返回* 1 *值以及非聚合 - 'cp.portfolio,j'返回* n *值,所以你需要一个'GROUP BY'来定义你想要计数的行组 – 2013-02-15 11:21:39

回答

1

应该通过cp.portfolio与一群工作:

begin 
    for j in 1..7 loop 
    for t in 0..32 loop 
     insert into mig_temp1 (report_date, portfolio, bucket, Q) 
     select add_months(to_date('31.10.2014','DD.MM.YYYY'),-t), 
      cp.portfolio, j, count(*) 
     from proba_cft pr, credtoportfolio cp 
     where pr.credit_num = cp.credit and pr.dpd_47 between 30*(j-1)+1 and 30*j 
     group by cp.portfolio; 
    end loop; 
    end loop; 
end; 
+0

谢谢你们! :) – user2074685 2013-02-27 06:07:21