2013-03-20 69 views
0

试图找到一个公式,可以让我显示某些值。显示多个值的公式

实施例:

我想看阿司匹林和华法林和(一个或多个接下来的3个值的)氯吡格雷或普拉格雷或替卡格雷。

Patient1需要:

阿司匹林 华法林 Clopidgrel

患者2花费: 阿司匹林 华法林

现在我看到两个患者1和患者2,我只希望看到病人像患者1那样显示3种不同的药物。

请帮助,并提前谢谢。我使用Crystal Reports 2008

+0

您是否在寻找一个**选择**公式,使报告仅返回那些符合指定条件的病人?此外,您是否从关系数据源进行报告,如果有,是哪个RDBMS(SQLServer,Oracle,MySQL等)? (这种选择可以在Crystal中完成,但在SQL中更容易并且可能更高效。) – 2013-03-20 13:17:44

+0

选择公式,我们使用Oracle作为数据源。 – user2169575 2013-03-20 13:19:12

+0

什么是另一个不是SQL的公式。只是想能够有选择。 – user2169575 2013-03-20 13:55:53

回答

1

我建议添加类似以下行的SQL SELECT子句:

count(distinct case when medication in ('Aspirin', 'Warfarin') 
        then medication end) 
    over (partition by patient) as mandatory_meds, 
count(distinct case when medication in ('Clopidogrel', 'Prasugrel', 'Ticagrelor') 
        then medication end) 
    over (partition by patient) optional_meds, 

- 然后添加下列条件的SQL WHERE子句:

and mandatory_meds = 2 and optional_meds >= 1 


或者,您可以通过以下方式在水晶中实现类似结果:

  • 组由患者
  • 报告创建名为mandatory_meds晶体式,用以下的公式:
    if {myTable.medication} = "Aspirin" or {myTable.medication} = "Warfarin"
    then {myTable.medication}
  • 创建晶体公式称为optional_meds状态,用以下的公式:
    if {myTable.medication} = "Clopidogrel" or {myTable.medication} = "Prasugrel"
    or {myTable.medication} = "Ticagrelor" then {myTable.medication}
  • 组添加条件选择公式,如:
    DistinctCount({@mandatory_meds})=2 and DistinctCount({@optional_meds})>=1