在Oracle中按视图分组

时间:2013-12-17 08:00:27

标签: database oracle

如何在下面的图片中通过示例统一几个相同的数据/数据重复

图片:http://i.stack.imgur.com/L1cHC.jpg

这是我的查询:

SELECT cl.client_group,
       cl.NAME,
       vw.CLASS,
       vw.buscat,
       vw.currency,
       vw.sum_insured,
       vw.client_premium,
       vw.net_income,
       vw.client
  FROM vw_ans_pol_coingrpibs vw, client cl, client_grp cgrp
 WHERE (vw.CLIENT = cl.CLIENT(+))
   AND (cl.CLIENT_GROUP = cgrp.CLIENT_GROUP(+))
   AND vw.CLOSING_DATE BETWEEN TO_DATE('01/01/2007', 'DD/MM/YYYY') AND
       TO_DATE('15/01/2007', 'DD/MM/YYYY')
 ORDER BY vw.CURRENCY, vw.CLIENT, vw.CLASS

你能帮助我吗?

1 个答案:

答案 0 :(得分:0)

如果我能帮到你,你完成了大部分工作,你只需要分组,你就完成了:

SELECT X.NAME, X.CLASS,
       SUM(X.sum_insured) sum_insured,
       SUM(X.client_premium) client_premium,
       SUM(X.net_income) net_income
from
(
    SELECT cl.client_group,
           cl.NAME,
           vw.CLASS,
           vw.buscat,
           vw.currency,
           vw.sum_insured,
           vw.client_premium,
           vw.net_income,
           vw.client
      FROM vw_ans_pol_coingrpibs vw, client cl, client_grp cgrp
     WHERE (vw.CLIENT = cl.CLIENT(+))
       AND (cl.CLIENT_GROUP = cgrp.CLIENT_GROUP(+))
       AND vw.CLOSING_DATE BETWEEN TO_DATE('01/01/2007', 'DD/MM/YYYY') AND
           TO_DATE('15/01/2007', 'DD/MM/YYYY')
) X
GROUP BY X.NAME, X.CLASS