2017-01-06 1 views
0

C'est une question simple en soi, mais mon dilemme est que je compare plus de 1 000 codes de diagnostic médical à la table globale de la CIM9.Accès comparez les valeurs génériques au tableau

J'ai une liste de codes tronqués à comparer à la base de données entière. Par exemple, j'ai tronqué le code 010, mais la table de base de données ICD9 globale a 010.01, 010.02, .... 010.96 et devrait retourner toutes les valeurs dans 010 *. Les listes de codes tronquées sur lesquelles je travaille sont variables et contiennent entre 800 et 300 caractères génériques et Access a une limite de 40 variables dans les requêtes.

J'ai trouvé this help topic mais je n'ai pas compris comment le convertir à mes besoins. Ci-dessous est le SQL à ma requête que j'ai installé actuellement, mais l'ai raccourci à seulement quelques valeurs à rechercher. S'il y a un moyen de mettre les codes génériques dans sa propre table et de les joindre à la table ICD9, ce serait génial ... mais mon expertise n'est pas disponible pour savoir comment utiliser l'autre table pour chercher le caractère générique.

SELECT [ICD9-10 Code Match].[ICD9 Code] 
FROM [ICD9-10 Code Match] 
WHERE ((([ICD9-10 Code Match].[ICD9 Code]) Like "010*" Or ([ICD9-10 Code Match].[ICD9 Code]) Like "011*" Or ([ICD9-10 Code Match].[ICD9 Code]) Like "012*" Or ([ICD9-10 Code Match].[ICD9 Code]) Like "013*" Or ([ICD9-10 Code Match].[ICD9 Code]) Like "014*" Or ([ICD9-10 Code Match].[ICD9 Code]) Like "015*" Or ([ICD9-10 Code Match].[ICD9 Code]) Like "016*" Or ([ICD9-10 Code Match].[ICD9 Code]) Like "017*" Or ([ICD9-10 Code Match].[ICD9 Code]) Like "018*" Or ([ICD9-10 Code Match].[ICD9 Code]) Like "042*" Or ([ICD9-10 Code Match].[ICD9 Code]) Like "0100*")); 

Répondre

0

Cela devrait faire:

SELECT [ICD9-10 Code Match].[ICD9 Code] 
FROM [ICD9-10 Code Match] 
WHERE [ICD9-10 Code Match].[ICD9 Code] IN 
    (Select Left([Code], InStr([Code], ".") - 1) From [ICD9]) 
+0

Merci Gustav! Mon but est que toute personne qui pourrait venir après moi soit capable de comprendre ce que j'ai fait. Bien que j'aime votre méthode beaucoup mieux et ça a marché! Je l'ai paraphrasé à ce qui suit après avoir fait un Find-> Remplacer pour la virgule décimale -> vide: SELECT [Liste de codes]. [Code de diagnostic], [Correspondance de code ICD9-10] .Match FROM [ICD9- 10 Code Match] INNER JOIN [Liste de codes] ON [Code de correspondance ICD9-10] .Match Like [Liste de codes]. [Code de diagnostic]; Il semblait fonctionner correctement et facilement pour quelqu'un qui ne connaissait pas la formule InStr. – jeffrey406

+0

Je déteste quand j'ai un cerveau buster, et la solution est si simple! Merci de me faire passer le barrage routier. – jeffrey406

+0

Vous êtes les bienvenus! – Gustav