Sql server Crystal报表:SQL子查询问题,结果为“null”
在SMS中运行以下SQL查询时,我正确地从patient_documents_1的第二个document_desc列中获取空值。这向我表明,针对特定患者存在的患者文档不包括所需的bh_pharm文档。太好了Sql server Crystal报表:SQL子查询问题,结果为“null”,sql-server,crystal-reports,Sql Server,Crystal Reports,在SMS中运行以下SQL查询时,我正确地从patient_documents_1的第二个document_desc列中获取空值。这向我表明,针对特定患者存在的患者文档不包括所需的bh_pharm文档。太好了 SELECT patients.last_name, patients.first_name, patient_documents.document_description, patient_documents_1.document_description FROM patients IN
SELECT
patients.last_name, patients.first_name,
patient_documents.document_description,
patient_documents_1.document_description
FROM patients
INNER JOIN patient_documents ON patients.pat_id = patient_documents.pat_id
LEFT OUTER JOIN (
select patient_documents.pat_id, patient_documents.document_description
from patient_documents where patient_documents.document_description = 'bh_pharm' )
as patient_documents_1 ON patients.pat_id = patient_documents_1.pat_id
WHERE
( patient_documents.timestamp >= {ts '2015-02-01 00:00:00'} AND patient_documents.timestamp < {ts '2015-03-01 00:00:00'} ) AND
patient_documents_1.document_description is null
我怎样才能在水晶报告中做到这一点
我尝试的每件事都会导致一个空报告。或者我必须包括每个记录和每个文档描述。我只想让报告告诉我哪些患者缺少bh_pharm文件。Crystal Reports能否处理子查询或子报表中的“空”结果
提前感谢…如果没有子查询的左连接,它会工作吗?Ie在删除连接和患者文档的所有引用后,您是否得到结果 如果没有,请确保您正在配置crystal reports以正确查询SQL Server 编辑: 这行吗?这可能是花括号,但我也做了一些无缘无故的改写
WITH patient_documents_1 as
(
select patient_documents.pat_id
from patient_documents
where patient_documents.document_description = 'bh_pharm'
group by patient_documents.pat_id
),
noBH as (
SELECT
patients.last_name,
patients.first_name,
patients.pat_id
FROM patients
LEFT OUTER JOIN patient_documents_1 on patients.pat_id = patient_documents_1.pat_id
WHERE
patient_documents_1.document_description is null
)
Select
noBH.*,
patient_documents.document_description
from noBH
INNER JOIN patient_documents ON noBH.pat_id = patient_documents.pat_id
WHERE
patient_documents.timestamp between '2015-02-01' and '2015-02-28'
哦,是的,有没有患者没有bh_pharm文档,但在2015年2月有时间戳?打开crystal report,然后在那里而不是选择tables select命令,并在那里复制相同的查询
现在开始设计并生成报告。从新报告开始 您需要添加到报告中的唯一表是patients表。如果使用别名,请确保在下面的查询中对其进行更改 添加SQL表达式以返回计数。当找不到具有正确描述的文档时,它将计算为零。复制下面的所有内容,包括括号。称之为DocumentCount 将筛选器添加到记录选择公式,以将其限制为要显示的筛选器
{%DocumentCount} = 0
无论我如何分解SQL查询,它都可以正常工作。基本上,我想做的是:一个愚蠢的例子,如果我的图书馆里有书,只告诉我书的清单,如果这些书都不是金银岛。若《金银岛》是其中的一本书,我不想要一个书单。你给我的任何关于Crystal Reports的工作示例都会帮助我走上正轨。谢谢,bf2020,这帮了我大忙。这份报告不完全是我需要完成的,但你回答了我的问题,这让我回到了正轨。再次感谢。嘿,Darryl Grimes,你能投赞成票或打分作为回答吗?我也试过了。我还尝试了一个子报告。我在上面的一个例子中解释了我的情况,回应了bf2020的回答。我尝试在一个子报告中使用select expert的公式显然失败了。。。“bhu pharm”不在[{patient_documents.document_description}]中。。。有没有办法在这个公式中动态创建现有文档描述的列表或数组?这是哪个版本的Crystal?你在使用命令吗?
{%DocumentCount} = 0