我正在尝试查询一个诊所实践管理数据库,以返回一个数据集,该数据集匹配四个不同字段的值列表(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,我认为我需要的是不同的,但这只检查整个记录是否不同,而不仅仅是ID。
-- Layman使用Advantage数据库服务器和报告软件,可能以某种方式与Crystal Reports捆绑在一起。
发布于 2010-09-21 23:35:30
出于测试目的,您需要具有Advantage Data Architect,可从Advantage DevZone下载。此外,您还需要完整的帮助文件,其中包括Cary Jensen出色的"Advantage Database Server,a Developer's Guide“的副本,可在同一位置找到,这将帮助您快速掌握Advantage中的http://devzone.advantagedatabase.com和一般的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 section...just创建该联合集确保您使用的是Advantage Crystal驱动程序、设置正确且可获得from...you猜测的it...Advantage Devzone
希望这能有所帮助。
https://stackoverflow.com/questions/3755287
复制相似问题