0

我在人和一些电子代码之间有多对多的关系。带有代码的表格有代码本身,以及代码的文本描述。查询的典型结果集可能是(有许多包含“损坏”的代码,所以我觉得最好搜索文本描述而不是为每个代码添加一堆 OR。)

id#    text of code
1234   broken laptop
1234   broken mouse

目前,我获得这样的结果集的最佳方法是使用LIKE%broken%过滤器。在不更改文本描述的情况下,有什么方法可以只返回一个代码实例broken?因此,在上面的示例中,查询只会返回 1234 和损坏的鼠标或损坏的笔记本电脑。在这种情况下,返回哪个并不重要,我要寻找的是该人代码的任何文本描述中是否存在“损坏”。

我目前的解决方案是创建一个可以返回的视图

`id#    text of code
1234   broken laptop
1234   broken mouse`

SELECT DISTINCT ID#在查询视图时使用以获取每个视图的一个实例。

实际编辑查询

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%')

4

1 回答 1

2

您可以使用以下查询来选择 MIN 代码。这将确保每个 id 只有文本。

SELECT t.id, MIN(t.textofcode) as textofcode
FROM table t
WHERE t.textofcode LIKE '%broken%'
GROUP BY t.id

更新的实际查询:

SELECT tblVisits.kha_id, 
  MIN(tblICD.Descrip) 
FROM tblVisits 
INNER JOIN icd_jxn ON tblVisits.kha_id = icd_jxn.kha)id 
INNER JOIN tblicd ON icd_jxn.icd_fk = tbl.icd_id
WHERE tblICD.descrip like n'%broken%'
GROUP BY tblVisits.kha_id
于 2012-04-05T18:21:22.603 回答