Crystal reports 在Crystal报告中汇总datediff后创建年度比较

Crystal reports 在Crystal报告中汇总datediff后创建年度比较,crystal-reports,comparison,average,datediff,date-difference,Crystal Reports,Comparison,Average,Datediff,Date Difference,我创建了一个报告,计算一个人完成一项任务所需的天数(datediff),然后计算平均天数。一组人完成同一项任务所需的天数(将datediff相加,然后插入一个“avg.”函数)。使用“开始日期”和“结束日期”参数字段设置所用的时间范围 现在,最终用户会问,“与去年相比,这一平均水平如何?” 我通过创建一个交叉表给出了一个快速的答案,我在交叉表中列出了“开始日期”2018年1月1日和结束日期2019年9月12日,然后在列中按年份分组。这不是一个精确的年度比较,因为这是2018年全年与2019年年初

我创建了一个报告,计算一个人完成一项任务所需的天数(datediff),然后计算平均天数。一组人完成同一项任务所需的天数(将datediff相加,然后插入一个“avg.”函数)。使用“开始日期”和“结束日期”参数字段设置所用的时间范围

现在,最终用户会问,“与去年相比,这一平均水平如何?”

我通过创建一个交叉表给出了一个快速的答案,我在交叉表中列出了“开始日期”2018年1月1日和结束日期2019年9月12日,然后在列中按年份分组。这不是一个精确的年度比较,因为这是2018年全年与2019年年初至今的比较

我知道有更好的办法。感谢您的帮助


每个任务都有一个唯一的ID、开始日期和结束日期

请尝试使用与主报告显示相同摘要数据的子报告,但要使用一组修改过的开始日期和结束日期。使用开始日期和结束日期链接子报表,但从每个值中减去一年。这将允许您的主报告显示2019年1月1日至2019年9月12日的数据,子报告将显示2018年1月1日至2018年9月12日的数据

以下是从日期中减去1年的公式

DateAdd("yyyy", -1, {@StartDate})

您可以在子报表的选择条件中使用此公式,也可以在子报表中创建公式字段,然后在选择条件中使用该公式字段。

我是否需要在子报表中为“上一年”创建公式?PY=开始日期减去365?从日期减去一年需要一个公式。
DateAdd()
函数是实现这一点的最简单方法。我已经编辑了我的答案,以显示您需要的公式示例。我复制了报告并制作了一个子报告。我通过参数字段“开始日期”和“结束日期”链接了报告。上面的公式表明“开始日期”是一个公式字段?我是否需要添加2个公式字段;一个用于开始,一个用于结束?这取决于您需要如何使用日期值。如果在子报表的选择条件中只需要一次,则可以为子报表的选择条件编写一个公式。如果您认为可能需要子报表中其他位置的日期,那么最好为每个日期创建一个公式字段。