Ich habe eine Eins-zu-viele-Mapping-Tabelle wie folgt angezeigt. Ich muss die ICD10
HORIZONTALLY anzeigen. für jede ICD9
. Die Daten sind dynamisch, daher kann ich die statische Pivot-Funktion nicht verwenden.Horizontale bis vertikale Anzeige mit dynamischer Pivot-Funktion
ICD9 | ICD10
-----+------
0156 | 0178
0156 | 0179
| 0181
0152 | 0202
0231 | 0210
0231 | 0211
0231 | 0212
möchte ich das Ergebnis as-
angezeigt werdenICD9 | ICD10 | ICD10 | ICD10
0156 | 0178 | 0179 | null
| 0181 | null | null
0152 | 0202 | null | null
0231 | 0210 | 0211 | 0212
Zur Zeit habe ich versucht, diesen Code zu verwenden:
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)
aber es funktioniert nicht, wie ich zu viele Datensätze haben (ungefähr 12000). Wie kann ich den Code ändern, um die ICD10
für jede ICD9
in einer Spalte anzuzeigen?
Wenn Sie versuchen, 12000 Spalten zu schwenken, werden Sie nicht in der Lage sein. Ich würde vorschlagen, etwas in Ihrer Anwendung statt in SQL zu tun. Was ist die maximale Anzahl von 'icd10', die du für jedes' icd9' haben wirst? – Taryn