我和人和一些电子代码之间有很多关系。带代码的表格包含代码本身,以及代码的文本描述。查询的典型结果集可能是(有许多代码包含“已损坏”,因此我觉得搜索文本描述更好,而不是为每个代码添加一堆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%')
答案 0 :(得分: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