2013-02-15 47 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