Crystal reports 按月份分组的计数的日平均值

Crystal reports 按月份分组的计数的日平均值,crystal-reports,Crystal Reports,我正试图找出最好的方法来显示每月计数的日平均值 下面是数据的样子 Date(date),Location(string),UnitID(string) 2011-12-1,A,123 2011-12-1,A,456 2011-12-1,B,789 2011-12-1,B,246 2011-12-2,A,135 2011-12-2,A,123 2011-12-2,B,789 2011-12-2,B,468 ... 我们想要一份显示以下内容的报告: (location) 12/2011

我正试图找出最好的方法来显示每月计数的日平均值

下面是数据的样子

Date(date),Location(string),UnitID(string)
2011-12-1,A,123
2011-12-1,A,456
2011-12-1,B,789
2011-12-1,B,246
2011-12-2,A,135
2011-12-2,A,123
2011-12-2,B,789
2011-12-2,B,468
...
我们想要一份显示以下内容的报告:

(location)   12/2011    1/2012    2/2012 (by month)
A             12.5        10.3      14.0
B             22.1        20.9      25.6
每个月/地点组合的汇总字段应按照以下总体思路计算:

Avg(Count(UnitID))/(days in month) *see below for clarification, this formula doesn't really make much sense.
平均值(Count(UnitID))是最难的部分。交叉表最有效,但在这一点上,任何东西都会起作用

非常感谢您的帮助


为清晰起见进行编辑:数据是所有发生故障的单元的列表。每天有几个单元发生故障,分布在多个位置。在英语中,我想要的是每月装置的平均每日故障数,按位置分组

我建议在交叉表中执行此操作

首先,在报告中添加如下公式(称为perMonthCount):

1 / DatePart ("d", 
              DateAdd ("d", 
                       -1, 
                       DateAdd ("m", 
                                1, 
                                DateAdd ("d", 
                                         1-DatePart ("d", {failures.fail_date}),
                                         {failures.fail_date}) ) ) )
接下来,从菜单中选择
Insert>Cross-Tab…
,并在Cross-Tab专家日志的Cross-Tab选项卡中指定以下值:

  • 行:您的位置字段
  • 列:您的故障日期字段(使用组选项按钮指定每月打印列
    ,而不是每天打印默认的
  • 摘要字段:@perMonthCount公式字段(摘要操作应默认为
    Sum of
在交叉选项卡Expert dailog的“自定义样式”选项卡中,选中“抑制行总计”勾选框。(如果不希望在报告末尾看到所有位置的总计,您可能还希望选中“抑制列总计”勾选框。)

单击“交叉选项卡专家”对话框底部的“确定”,并将交叉选项卡放到报告页脚中

您可能还想取消显示报告的详细信息部分


在这一阶段,您现在应该可以预览您的结果。

您能澄清该公式的作用吗?如果按月份/地点取计数(UnitID)
的平均值,那么结果将始终只是计数。。。Average()函数实际上不会做任何事情。我在底部添加了一个注释,希望这有助于澄清我要做的事情。谢谢你的关注!这是一个非常聪明的方法,我打赌它会奏效。我星期二以前不在办公室,但我会查一下,然后告诉你。我从未考虑过将一个月内的天数倒数相加得到一个平均数,但这是有道理的。