0

問題があります。使用しているテーブルの 1 つが、必要なものを達成するのが困難な方法でセットアップされています。

index_name  und_mnem   weight     percent_wt  undId   altId     type       
'.SXXP'      'AAL.L'  0.051341648  0.015464   18742  '08238P911 'CUS'
'.SXXP'      'AAL.L'  0.051341648  0.015464   18742  '32508392' 'ISIN'

これらの 2 行を、ヘッダー CUS と ISIN を含む 1 行に統合し、対応する列に正しい altId を含める必要があります。

理想的には、データは次のようになります

index_name  und_mnem   weight     percent_wt  undId     Cus        ISIN      
'.SXXP'      'AAL.L'  0.051341648  0.015464   18742  '08238P911 '32508392'

これが私のクエリです

SELECT 
    il.index_name, il.und_mnem, il.weight, il.percent_wt, il.index_shares, 
    il.undId, aa.altId, aa.type 
FROM 
    indexlist il 
join 
    altIdentifier aa on aa.id = il.undId 
where 
    il.index_name = ".SXXP" and type in ("ISIN","CUS")

私はサイベースを使用しています

どんな助けでも大歓迎です!

ありがとう、

4

2 に答える 2

0

CASE結果を取得するには、式で集計関数を使用できる必要があります。

SELECT  il.index_name, 
  il.und_mnem, 
  il.weight, 
  il.percent_wt, 
  il.index_shares, 
  il.undId, 
  max(case when aa.type = 'CUS' then aa.altId end) Cus,
  max(case when aa.type = 'ISIN' then aa.altId end) ISUN
FROM indexlist il 
join altIdentifier aa 
  on aa.id = il.undId 
where il.index_name = ".SXXP" 
  and type in ("ISIN","CUS")
group by il.index_name, il.und_mnem, il.weight, il.percent_wt, 
  il.index_shares, il.undId
于 2013-05-17T12:34:09.160 に答える