非重复项求和,且“非重复”和“求和”在不同的字段上

yangguosheng 2011-02-15 05:38:37
比如说表里有两个字段。“编号”和“数量”。“编号”有可能重复,每个“编号”对应唯一的“数量”。

编号 数量
1 10
1 10
2 5
3 5

现在想统计不重复“编号”记录的“数量”的和。
统计的结果就是10+5+5 = 20

并且这个数量我要在报表头上显示。
...全文
322 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangguosheng 2011-02-18
  • 打赏
  • 举报
回复
ok.
非常感谢。
阿双2009 2011-02-16
  • 打赏
  • 举报
回复
在字段资源管理器 新建一个 运行总计字段(右击运行总计字段点新建)
汇总字段 设为 数量字段
汇总类型 设为 求和(默认就是)

“求值”区域点选 使用公式,点击其后的公式按钮编辑公式:
OnFirstRecord OR {DataTable1.编号} <> Previous ({DataTable1.编号})

把该运行总计字段拖放到报表尾部即可。
yangguosheng 2011-02-16
  • 打赏
  • 举报
回复
“编号”对应唯一确定的“数量”。 不会出现同一个“编号”对应不同的“数量”。
yangguosheng 2011-02-16
  • 打赏
  • 举报
回复
水晶报表2008。
.net3.5
B/S
  • 打赏
  • 举报
回复
如果是这样的数据,你要的结果?
1 10
1 11
2 5
3 5

阿双2009 2011-02-16
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 yangguosheng 的回复:]
那能想办法在报表头显示这个结果么。
[/Quote]
WhilePrintingRecords;
也是运行时汇总的,根据记录逐行汇总,也就是说汇总结果必须放在数据之后才有效。
[Quote=引用 9 楼 yangguosheng 的回复:]
怎样让交叉表之外用这个值呢?
[/Quote]
貌似不行。。
yangguosheng 2011-02-16
  • 打赏
  • 举报
回复
恩,非常感谢。
公式的问题解决了。

那能想办法在报表头显示这个结果么。

我在报表头拖了一个交叉表。在交叉表里我是能统计到这个结果的。

怎样让交叉表之外用这个值呢?

向专家们致敬。

阿双2009 2011-02-16
  • 打赏
  • 举报
回复
新建三个公式字段x1,x2,x3

公式x1:
WhilePrintingRecords;

//以下三变量为共享变量
Shared NumberVar Array ary; //数组ary 用来保存不同编号
Shared NumberVar nSum := 0; //用来保存数量和,即最后所要的结果
Shared NumberVar i := 0; //数组ary当前长度

公式x2:
WhilePrintingRecords;
NumberVar Array ary;
NumberVar nSum;
NumberVar i;

If Not ({DataTable1.编号} in ary) Then //若当前编号不在ary数组中
(
i := i + 1; //数组长度加1
Redim Preserve ary[i]; //保留原数组
ary[i] := {DataTable1.编号};// 把当前编号加到数组中

nSum := nSum + {DataTable1.数量}; //增加当前编号对应的数量
)

公式x3:
WhilePrintingRecords;
NumberVar nSum; //最终所要结果

把公式x1放在表头,x2放在详细资料节,x3放在表尾
把x1,x2两公式字段抑制显示即可。
阿双2009 2011-02-16
  • 打赏
  • 举报
回复
不能先把数据排序下吗:)

即使没先排好序,应该还是有办法的,我试试先~~
yangguosheng 2011-02-16
  • 打赏
  • 举报
回复
十分感谢 luols 的回答。
回答的很详细,很有耐心呢。

可是还有两个问题。
“编号”字段是没有顺序的。公式还要改进一下或者数据排一下序,这个还好办。
问题是我在一开始就要使用这个结果。
有办法么?
阿双2009 2011-02-15
  • 打赏
  • 举报
回复
用的是什么报表工具?。。

4,816

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧