2013-09-13 3 views
-2

У меня есть 3 таблицы SELECT * FROM BIS_RCNC_CRIT_ATTRрангом группы по функциям

RCNC_CRIT_ATTR_ID RCNC_CRIT_SET_ID RCNC_ATTR_TYP_ID RCNC_CRIT_ATTR_EXPR 
60947 10660 5 5322 
61039 10706 5 5322 
75241 13077 5 5322 

SELECT * FROM BIS_RCNC_ATTR_TYP

RCNC_ATTR_TYP_ID RCNC_TYP_ID RCNC_ATTR_TYP_NM RCNC_ATTR_TYP_DSC 
1 1 SN SN 
2 1 CU CU 
3 1 IS IS 
4 1 SE SE 
5 1 IV IV 
6 1 BE BE 
7 1 PN PN 
8 1 PV PV 

SELECT * FROM BIS_RCNC_CRIT_SET

RCNC_CRIT_SET_ID RCNC_CRIT_TYP_ID RCNC_CRIT_SET_STAT 
10660 2 A 
10706 2 A 
13077 2 A 

Я бегу запрос

select 
    BIS_RCNC_CRIT_SET.RCNC_CRIT_SET_ID AS "ID", 
    max(case when rcnc_attr_typ_nm ='IV' then rcnc_crit_attr_expr else null end) as "ACCT", 
    max(case when rcnc_attr_typ_nm ='PN' then rcnc_crit_attr_expr else null end) as "Platform" 
    FROM BIS_RCNC_CRIT_SET 
INNER JOIN BIS_RCNC_CRIT_ATTR 
    ON BIS_RCNC_CRIT_SET.RCNC_CRIT_SET_ID = BIS_RCNC_CRIT_ATTR.RCNC_CRIT_SET_ID 
INNER JOIN BIS_RCNC_ATTR_TYP 
    on bis_rcnc_crit_attr.rcnc_attr_typ_id = bis_rcnc_attr_typ.rcnc_attr_typ_id 
where bis_rcnc_crit_set.rcnc_crit_typ_id = 2 and bis_rcnc_crit_set.RCNC_CRIT_SET_STAT = 'A' 
group by 
BIS_RCNC_CRIT_SET.RCNC_CRIT_SET_ID 

Запрос запрашивает дублирующее значение для IVAN и платформы.

10706 5322  Bloomberg 
10660 5322  Bloomberg 
13077 5322  Bond Desk 

Как устранить дубликаты, основанные на платформе и ИВАН

То, что я хочу

10706 5322 Bloomberg 
13077 5322 Bond Desk 
+0

Не могли бы вы предоставить некоторые данные образца, пожалуйста? – Ben

+0

Чувак я получаю 3 ряда .... для IVAN 5322 Я получаю два bloomberg ... но я хочу только 1, что означает, что я хочу первую и третью строку –

+0

Но если мы не знаем, каковы исходные данные, как мы можем знать как изменить выход? – Ben

ответ

0

Из того, что я понял

select case when rcnc_attr_typ_nm ='Platform Name' then rcnc_crit_attr_expr else null end as "Platform", 
     case when rcnc_attr_typ_nm ='IVAN' then rcnc_crit_attr_expr else null end as "ACCT", 
     max(BIS_RCNC_CRIT_SET.RCNC_CRIT_SET_ID) AS "ID", 
     max(case when rcnc_attr_typ_nm ='AcctName' then rcnc_crit_attr_expr else null end)as "AcctName" 
    FROM BIS_RCNC_CRIT_SET INNER JOIN BIS_RCNC_CRIT_ATTR 
         ON BIS_RCNC_CRIT_SET.RCNC_CRIT_SET_ID = BIS_RCNC_CRIT_ATTR.RCNC_CRIT_SET_ID 
         INNER JOIN BIS_RCNC_ATTR_TYP 
         on bis_rcnc_crit_attr.rcnc_attr_typ_id = bis_rcnc_attr_typ.rcnc_attr_typ_id 
where bis_rcnc_crit_set.rcnc_crit_typ_id = 2 and bis_rcnc_crit_set.RCNC_CRIT_SET_STAT = 'A' 
group by case when rcnc_attr_typ_nm ='Platform Name' then rcnc_crit_attr_expr else null end 
    , case when rcnc_attr_typ_nm ='IVAN' then rcnc_crit_attr_expr else null end 

Пожалуйста, проверьте, если это то, что вы хотели.

С уважением

+0

Я изменил свой вопрос и предоставил более подробную информацию. Можете попробовать тоже самое . Выше решение не работает для меня. –

+0

Жаль, что не ответил, но это просто, просто группа от платформы. Логика будет аналогичной – Deceiver

Смежные вопросы