Crystal Reports 2011 - 基于某些标准抑制信息

时间:2016-03-09 17:38:01

标签: crystal-reports crystal-reports-2011 crystal-reports-formulas

我打算试着说出这个问题而不要太困惑。

我们有一份报告,希望向每位患者展示他们的保险。患者记录中的每个保险都是订单号码。但是,我们不仅要表明这一点;我想提出一些标准,以便如果保险A在患者ID下有1号订单,则显示该患者的所有保险。如果患者在第1号订单中没有保险A,请不要在报告中显示该患者或他们的任何信息。

在下面的代码中,担保人指的是保险。因此,订单号和担保人名称是我们关注的重点。这是我在Suppress选项的Section Expert中输入的代码。我假设如果它符合标准,TRUE将抑制信息,否则FALSE将允许信息。但是,这还不够,因为它会抑制所有其他信息。

if {billing_guar_order_no_ep.guarantor_order_number}  = "1" AND
{billing_guar_order_no_ep.guarantor_name} = "Medicare" then
    false
else
    true

我假设它需要迭代或循环遍历每个患者,如果找到此信息,列出患者的所有信息并继续前进,否则抑制并继续前进。我希望这是有道理的。

示例:

|Patient ID|Order Number|Guarantor Name|
| -------- | ---------- | ------------ |
|1         |           1|Medicare      |
|1         |           2|Medicaid      |
|2         |           1|Medicaid      |
|2         |           2|Medicare      |

在上面的例子中,我想要的是报告显示来自患者#1(包括所有订单号)的所有内容,甚至不显示报告中的患者#2。然而,正在发生的事情是患者#1确实出现,但只有1号订单;它会抑制所有其他信息。

我错过了什么?

1 个答案:

答案 0 :(得分:0)

您想要的查询将改编为:

select *
from data d
where not exists (
  select 1
  from data
  where pat_id=d.pat_id
  and   order_id=1
  and   guarantor_name='Medicaid'
)

'链接专家'不支持此语法,因此您需要使用命令。

过程:

  • 选择Database |获取当前查询显示SQL查询...
  • 制作新报告
  • 选择'添加命令'来自数据库专家
  • 粘贴查询,然后进行修改