2017-10-11 3 views
0

私はSQLの初心者ですが、SQLを使用してこれを実現できることを研究しています。sqlの行と列を動的に転置するため、列/行の値をヘッダとして使用する必要はありません。

クエリ

select 
    c.CLAIM_ID, 
    e.CODE, 
    e.DX_TYPE 
from 
    claim_sub c, 
    diagnosis_sub e 
where 
    c.uid = e.DIAG_CLAIM_UID and 
    --e.uid = f.DXINFO_DIAG_UID and 
    c.claim_id in('IP0000013119','IP0000013124') 

電流出力:

CLAIM_ID  DX_TYPE  CODE 
------------------------------------- 
IP0000013119 PRINCIPAL M62.82 
IP0000013119 SECONDARY E55.9 
IP0000013119 SECONDARY M79.652 
IP0000013119 SECONDARY M79.651 
IP0000013119 SECONDARY M51.37 
IP0000013119 SECONDARY R20.0 
IP0000013119 SECONDARY R94.4 
IP0000013119 SECONDARY R79.89 
IP0000013119 SECONDARY R73.09 
IP0000013124 PRINCIPAL K52.9 
IP0000013119 SECONDARY E86.0 
IP0000013124 SECONDARY R10.9 
IP0000013124 SECONDARY R11.10 
IP0000013124 SECONDARY R63.8 
IP0000013124 SECONDARY R79.89 

所望の出力:あなたは、テーブルのDDLをご提供するために余分な労力に入れていなかったので

Claim_ID DX_TYPE1 CODE1 DX_TYPE2 CODE2 DX_TYPE3 CODE3 DX_TYPE4 CODE4 DX_TYPE5 CODE5 DX_TYPE6 CODE6 DX_TYPE7 CODE7 DX_TYPE8 CODE8 DX_TYPE9 CODE9 
IP0000013119 PRINCIPAL M62.82 SECONDARY E55.9 SECONDARY M79.652 SECONDARY M79.651 SECONDARY M51.37 SECONDARY R20.0 SECONDARY R94.4 SECONDARY R79.89 SECONDARY R73.09 
IP0000013124 PRINCIPAL K52.9 SECONDARY E86.0 SECONDARY R10.9 SECONDARY R11.10 SECONDARY R63.8 SECONDARY R79.89  
+0

ヒント:ピリオドまたはユースケース式には、長さが修正されている場合があります。 –

答えて

0

それに加えて一連のテストデータが使用されていますが、私はあなたの質問に対する答えをSQLコードで与えることはできません。しかし、私はあなたにJeff Modenが書いたクロスタブとピボットのトピックに関する優れた記事へのリンクを与えることができるので、トピックを完全に研究して理解することができます:Part 1 & Part 2

関連する問題