我正在尝试查询诊所实践管理数据库,以返回与四个不同字段的值列表(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绑定。
答案 0 :(得分:3)
为了您的测试目的,您需要拥有可从Advantage DevZone下载的Advantage Data Architect。 http://devzone.advantagedatabase.com此外,您需要完整的帮助文件,其中包含Cary Jensen的奇妙“Advantage Database Server,开发人员指南”的副本,可以在同一个地方使用,这将帮助您快速掌握SQL在Advantage和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 Driver,正确设置,并且可以从...中猜到... ...优势Devzone
希望有所帮助。