2017-01-06 11 views
0

Это простой вопрос сам по себе, но моя дилемма заключается в том, что я сравниваю 1000 + медицинские коды диагностики с общей таблицей ICD9.Доступ сопоставить значения подстановочных знаков с таблицей

У меня есть список усеченных кодов для сравнения ко всей базе данных. Например, у меня усеченный код 010, но общая таблица базы данных ICD9 имеет 010.01, 010.02, .... 010.96 и должна возвращать все значения в пределах 010 *.

Укороченные списки кодов, из которых я работаю, являются переменными и содержат между 800-1300 + подстановочными кодами, а Access имеет 40 переменных ограничений в запросах.

Я нашел this help topic, но не понял, как его преобразовать в мои потребности. Ниже приведен SQL-запрос к моему запросу, который у меня установлен, но сократил его до нескольких значений для поиска. Если есть способ поставить коды подстановочных знаков в свою собственную таблицу и соединить с таблицей ICD9, это было бы замечательно ... но мой опыт недоступен, чтобы знать, как использовать другую таблицу для поиска подстановочного знака.

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*")); 

ответ

0

Это должно сделать:

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

Благодаря Gustav! Моя цель для всех, кто может прийти после меня, понять, что я сделал. Хотя мне нравится ваш метод намного лучше, и он действительно работает! Я перефразировал это следующим образом после того, как я сделал Find-> Replace для десятичной точки -> blank: SELECT [Список кодов]. [Код диагностики], [ICD9-10 Match Match] .Match FROM [ICD9- 10 Code Match] INNER JOIN [Список кодов] ON [ICD9-10 Match Match] .Match Как [Список кодов]. [Код диагностики]; Казалось, что это удобно и легко для кого-то, не знакомого с формулой InStr. – jeffrey406

+0

Ненавижу это, когда у меня мозговой спутник, и решение так просто! Спасибо, что забрал меня через блокпост. – jeffrey406

+0

Добро пожаловать! – Gustav