0

我正在尝试查询临床实践管理数据库以返回与四个不同字段的值列表(icd-9 代码)中的任何一个匹配的数据集,但随后仅返回患者的 ID 号,或仅返回第一条记录对于具有 icd-9 代码之一的患者。然后,我计划整理一些子报告,为我提供患者所需的其余数据,包括最后一次病例/就诊的 icd-9 代码。

该软件生成如下内容:

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 相关联的报告软件。

4

1 回答 1

3

出于测试目的,您将需要 Advantage Data Architect,可从 Advantage DevZone 下载。 http://devzone.advantagedatabase.com此外,您还需要完整的帮助文件,其中包括 Cary Jensen 出色的“Advantage Database Server, a Developer's Guide”的副本,可以在同一个地方找到,这将帮助您起床在 Advantage 中加速 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');

如果您需要在 Crystal 中执行此操作,您可以使用 AddCommand 部分创建该联合集...只要确保您使用的是 Advantage Crystal 驱动程序,设置正确,并且可以从...获得...您猜对了...优势开发区

希望有帮助。

于 2010-09-21T15:35:30.343 回答