私は、人といくつかの電子コードの間に多対多の関係を持っています。コードの表には、コード自体と、コードの説明文が含まれています。クエリからの典型的な結果セットは次のようになります (「壊れた」を含むコードがたくさんあるので、すべてのコードに多数の OR を追加するよりも、テキストの説明を検索する方がよいと思います)。
id# text of code
1234 broken laptop
1234 broken mouse
現在、このような結果セットを取得するための最良の方法は、LIKE%broken%
フィルターを使用することです。テキストの説明を変更せずに、コードのインスタンスを 1 つだけ返す方法はありますbroken
か? したがって、上記の例では、クエリは 1234 と壊れたマウスまたは壊れたラップトップのみを返します。このシナリオでは、どちらが返されるかは問題ではありません。私が探しているのは、その人のコードのテキスト説明のいずれかに「壊れた」が存在することだけです。
現時点での私の解決策は、返すビューを作成することです
`id# text of code
1234 broken laptop
1234 broken mouse`
SELECT DISTINCT ID#
ビューのクエリ中に使用して、それぞれのインスタンスを 1 つだけ取得します。
実際にクエリを編集
SELECT tblVisits.kha_id, tblICD.descrip, min(tblICD.Descrip) as expr1
FROM tblVisits inner join
icd_jxn on tblVisits.kha_id = icd_jxn.kha)id inner join tblICD.icd_fk=tblICD.ICD_ID
group by tblVisits.kha_id, tblicd.descrip
having (tblICD.descrip like n'%broken%')