2010-09-20 59 views
0

我试图查询临床实践管理数据库以返回与四个不同字段的值列表(icd-9代码)中的任何值匹配的数据集,但那么只返回患者的身份证号码,或者仅返回具有ICD-9代码之一的该患者的第一条记录。然后,我打算做一些子报告,为我提供患者需要的其余数据,包括最后一例/访问的icd-9代码。在选定数据集(ADS)中删除具有相同ID的记录

该软件生成类似以下内容:

SELECT DISTINCT 
       MWTRN."Chart Number" AS Chart_Number, 
       MWTRN."Diagnosis Code 1" AS Diagnosis_Code_1, 
       MWTRN."Diagnosis Code 2" AS Diagnosis_Code_2, 
       MWTRN."Diagnosis Code 3" AS Diagnosis_Code_3, 
       MWTRN."Diagnosis Code 4" AS Diagnosis_Code_4, 
       MWTRN."Date From" AS Date_From, 
       MWTRN."Date To" AS Date_To, 
       MWPAT."First Name" AS First_Name, 
       MWPAT."Last Name" AS Last_Name 
FROM MWTRN MWTRN, MWPAT MWPAT 
WHERE 
     (MWPAT."Chart Number" = MWTRN."Chart Number") 
GROUP BY MWTRN."Chart Number", 
     MWTRN."Diagnosis Code 1", 
     MWTRN."Diagnosis Code 2", 
     MWTRN."Diagnosis Code 3", 
     MWTRN."Diagnosis Code 4", 
     MWTRN."Date From", MWTRN."Date To", 
     MWPAT."Last Name", MWPAT."First Name" 

生成的数据集我怎么能回去下来配对后的结果?

我读过几个广告支持的SQL教程网站来阅读生成的SQL,并认为我需要的是DISTINCT,但这只会检查整个记录是否不同,而不仅仅是ID。

- Layman使用Advantage Database Server和报告软件,它可能以某种方式绑定到Crystal Reports。

+0

此外,在这种情况下,人们能快速起步吗?大多数人选择课程,还是关于关系数据库可访问的原始论文? – Radix 2010-09-20 20:39:27

+0

不是一个完整的答案,但你可以做SELECT TOP 1 ....只返回第一个命中。 – JNK 2010-09-20 20:47:19

+0

太棒了,谢谢! – Radix 2010-09-21 18:42:52

回答

3

为了您的测试目的,您将希望拥有Advantage Data Architect,可从Advantage DevZone下载。 http://devzone.advantagedatabase.com此外,您需要完整的帮助文件,其中包含Cary Jensen奇妙的“Advantage数据库服务器,开发人员指南”的副本,可以在同一位置获得,这将帮助您加快Advantage SQL中的SQL速度,并且SQL一般。 您有几个选项,具体取决于您要完成的是什么。 您可以创建一个SQL脚本,并把你的语句到一个临时表中

Select into #MyTemp --all the rest of the complex SQL command-- 

然后,你可以做你想做的与该文件,以削减下来。但是,如果你只是想的是有一定的诊断代码患者列表,你可以这样做

Select pat.id, pat.name, pat.address from pat where pat.id in (Select id from tran where diag1 in ('123.3','123.4') UNION Select id from tran where diag2 in ('123.3','123.4') UNION 
Select id from tran where diag3 in ('123.3','123.4') UNION Select id from tran where diag4 in ('123.3','123.4'); 

如果你需要做的是在水晶,你可以创建一个使用AddCommand节并集...只要确保你使用的是Advantage Crystal Driver,设置正确,并且可以从......你猜对了...... Advantage Devzone

希望有所帮助。

+0

多么美妙的回应!这很清楚,谢谢。我花了一段时间才弄清楚了这一点,因为在SQL语法中逗号的作用有些混乱,但我提出了: – Radix 2010-09-23 21:40:31

+0

这真是一个奇妙的回应!这很清楚,谢谢。我花了一段时间才得到这个答案,因为逗号在SQL语法中的作用有些混乱,但我提出了:http://pastebin.com/wN3LTKZ4我想我对所发生的事情有正确的理解,但仍有重复。如果有人能告诉我为什么我会欣赏它,否则我会添加TOP并完成它。不应该将UNION集的ID与“图表编号”集(即MWTRN。“图表编号”)的编号进行匹配,然后删除额外的? – Radix 2010-09-23 22:02:20

+0

不,TOP 1只返回结果集的第一个entrie。一个“图表号码”。 – Radix 2010-09-23 22:05:47

相关问题