2013-12-17 3 views
0

Как объединить несколько же дублирования данных/данных по примеру на картинке нижеГруппировка По Просмотр в Oracle

IMAGE: 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 

Можете ли вы мне помочь ?

+3

Что именно ваша проблема? Что * делает * ваш запрос возвращен, и что * должен * его вернуть (пожалуйста, не просто разместите ссылку на изображение - добавьте примерные данные на ваш вопрос)? –

+0

Вы не используете таблицу cgrp. Отсутствие условий WHERE или HAVING? Опишите данные и результаты. –

ответ

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 
Смежные вопросы