J'ai une table avec près d'un million de dossiers de réclamations pour 6 conditions différentes comme le diabète, l'hypertension, l'insuffisance cardiaque, etc. Chaque membre a un certain nombre de revendications. Il pourrait avoir des réclamations avec la maladie comme le diabète ou l'hypertension ou toute autre chose. Mon but est de regrouper les conditions qu'ils ont (nombre de réclamations) pour chaque rangée de membres.Lignes SQL Group pour chaque ID utilisant la jointure externe gauche
existing table
+--------------+---------------+------+------------+
| Conditions | ConditionCode | ID | Member_Key |
+--------------+---------------+------+------------+
| DM | 3001 | 1212 | A1528 |
| HTN | 5001 | 1213 | A1528 |
| COPD | 6001 | 1214 | A1528 |
| DM | 3001 | 1215 | A1528 |
| CAD | 8001 | 1823 | B4354 |
| HTN | 5001 | 3458 | B4354 |
+--------------+---------------+------+------------+
le résultat souhaité
+------------+------+-----+----+----+-----+-----+
| Member_Key | COPD | CAD | DM | HF | CHF | HTN |
+------------+------+-----+----+----+-----+-----+
| A1528 | 1 | | 2 | | | 1 |
| B4354 | | 1 | | | | 1 |
+------------+------+-----+----+----+-----+-----+
Recherche
select distinct tr.Member_Key,C.COPD,D.CAD,DM.DM,HF.HF,CHF.CHF,HTN.HTN
FROM myTable tr
--COPD
left outer join (select Member_Key,'X' as COPD
FROM myTable
where Condition=6001) C
on C.Member_Key=tr.Member_Key
--CAD
left outer join (....
Pour l'instant je suis juste en utilisant 'X'. Mais j'essaye d'obtenir le nombre de réclamations à la place de X basé sur la condition. Je ne pense pas que l'utilisation d'une jointure externe gauche soit efficace lorsque vous recherchez 1 million de lignes et que vous en faites une distincte. Avez-vous une autre approche dans la résolution de cette
se familiariser avec la fonction PIVOT. –
hmmm ... PIVOT ne semble pas nécessaire pour un cas comme celui-ci. @KrzysztofKaszkowiak – Hogan
Vous avez raison. Si le nombre de conditions ne change pas, alors PIVOT est inutile. –