以下のように1対多のマッピングテーブルが表示されています。私はICD10
ホライズンを表示する必要があります。各ICD9
の データは動的なので、私は静的なピボット関数を使用することはできません。ダイナミックピボット関数を使用した水平から垂直への表示
ICD9 | ICD10 | ICD10 | ICD10
0156 | 0178 | 0179 | null
| 0181 | null | null
0152 | 0202 | null | null
0231 | 0210 | 0211 | 0212
現在、私はこのコードを使用しようとしたAS-表示させたい
ICD9 | ICD10
-----+------
0156 | 0178
0156 | 0179
| 0181
0152 | 0202
0231 | 0210
0231 | 0211
0231 | 0212
:
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(icd10)
FROM mv_icd
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = 'SELECT icd9, ' + @cols + ' from
(
select icd9,icd10 from mv_icd
) x
pivot
(
min(icd9)
for icd10 in (' + @cols + ')
) p '
execute(@query)
を私はあまりにも多くのレコードを(持っているとして、それは動作しません。約12000)。列内の各ICD9
のICD10
を表示するコードを変更するにはどうすればよいですか?
12000列をピボットしようとすると、できなくなります。私はあなたのアプリケーション内でSQLの代わりに何かをやってみることをお勧めします。それぞれの 'icd9'に対してあなたが持つ' icd10'の最大数はいくらですか? – Taryn