2017-01-06 18 views
0

これは単なる問題ですが、私のジレンマは1,000以上の医療診断コードを全体のICD9テーブルと比較しています。テーブルとワイルドカードの比較値を比較する

私は、データベース全体と比較する切り捨てられたコードのリストを持っています。例えば、私はコード010を切り捨てましたが、全体のICD9データベーステーブルは010.01,010.02、.... 010.96であり、010 *内のすべての値を返す必要があります。

私が作業している切り捨てられたコードリストは可変であり、800-1300 +ワイルドカードコードを含んでいます。また、アクセスにはクエリで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

おかげグスタフ!私の目標は、私の後に来るかもしれない誰でも私が何をしたのか理解できるようにすることです。私はあなたの方法がはるかに良いのが好きですが、それは動作しました!小数点の検索 - >置換 - >空白の後に私は次のように言い換えました。 SELECT [コードリスト]。[診断コード]、[ICD9-10コードマッチ] .Match FROM [ICD9- 10コードマッチ] INNER JOIN [コード一覧] ON [ICD9-10コードマッチ] .Match [コード一覧]と同様。[診断コード]; InStrの式に慣れていない人にとっては、適切かつ簡単に動作するように見えました。 – jeffrey406

+0

私は脳のバスターを持っているとき、私はそれが嫌い、そしてソリューションはとてもシンプルです!私をロードブロッキングに乗せてくれてありがとう。 – jeffrey406

+0

あなたは大歓迎です! – Gustav

関連する問題