带有空日期的日期范围记录选择

时间:2021-01-16 04:29:20

标签: crystal-reports

我正在努力确定两个日期之间所有动物在收容所中的逗留时间 (LOS)。我有两列 {kennel.intake_date} 和 {kennel.outcome_date}。我创建了公式@LOS,它似乎工作正常。

constexpr

有两件事我无法解决。

首先,我有一个记录选择问题。我想计算两个特定日期之间收容所中所有动物的 LOS。这需要包括已经离开并有 {kennel.outcome_date} 的动物和在选定的结束日期后留在收容所的动物。我已经设置了 ?begin 和 ?end 参数,并且可以轻松地执行诸如 IF {kennel.outcome_date} > 0 THEN({kennel.outcome_date}-{kennel.intake_date}) ELSE (today-{kennel.intake_date}) 之类的操作,但这会排除收容所中所有未在选定时间范围内处理的动物,因此没有 {犬舍。结果_日期}。换句话说,我需要选择两个日期之间有 {kennel.outcome_date} 或没有 {kennel.outcome_date} 的所有动物。

我还至少有两个其他记录选择规则,一个来自同一个表,一个来自由一个共同的唯一动物 ID 链接的表。一个规则是不选择特定类型的摄入量,另一个规则是不选择特定类型的动物。类似于 {kennel.outcome_date} IN ?begin TO ?end{kennel.intake_type} <> ["DISPOSAL", "SPECIMAN"]。我提到这一点是因为我弄乱了一个看起来像这样的选择公式:

{animal.animal_type} <> ["BIRD", "LIVESTOCK"]

出于某种原因,有时我会在选择中得到“SPECIMAN”或“BIRD”数据,这取决于我如何排列选择代码行。作为旁注,我还添加了一个 ?summery 和 ?detail 参数来抑制细节部分,并在标题部分中仅显示基于animal.animal_type 的组。

其次,我一生都无法弄清楚如何计算@los 结果的四分位距 (IQR)。我知道如何获得范围(至少是我可以管理的范围)以及@LOS 数据的平均值、中值、众数和标准之间的庇护所中动物的总数。但鉴于主人要求安乐死的左尾和右尾离群值都从 0 开始的数据的性质,其中动物不会在收容所等待调查或医疗康复,很容易达到 100 多天 IQR 更有用。基本上在将@LOS 数据按递增顺序排列后,我需要从数据的前半部分的中位数中减去后半部分数据的中位数。或 IQR = Q3 的中位数 - Q1 的中位数。

对不起,文字墙。我和一群毛茸茸的朋友非常感谢任何帮助。

0 个答案:

没有答案