加入收藏 | 设为首页 | 会员中心 | 我要投稿 鄂州站长网 (https://www.0711zz.com/)- 数据分析、网络、云渲染、应用安全、大数据!
当前位置: 首页 > 数据库 > MsSql > 正文

sql-server – SSRS:如何计算真行

发布时间:2021-03-30 18:24:35 所属栏目:MsSql 来源:互联网
导读:我有一个数据集的报告,其中包含一个包含布尔值的列.在表格页脚中,我想显示x / y,其中x是真实的行数,y是总行数. 目前我有这个: =Count(Fields!Transfered.Value).ToString() + / + CountRows().ToString() 但第一部分与最后部分相同.然后我尝试了这个: =Sum(

我有一个数据集的报告,其中包含一个包含布尔值的列.在表格页脚中,我想显示x / y,其中x是真实的行数,y是总行数.

目前我有这个:

=Count(Fields!Transfered.Value).ToString() + " / " + CountRows().ToString()

但第一部分与最后部分相同.然后我尝试了这个:

=Sum(Fields!Transfered.Value).ToString() + " / " + CountRows().ToString()

但这会产生错误,我想我可以理解.我认为如果我将布尔值转换为数字,其中true为1且false为0,那么它可以很好地解决.但是我该怎么做呢?或者这是一个更聪明的方式一起完成这一切?

更新:现在也尝试过了

=Sum(CInt(Fields!Transfered.Value)).ToString() + " / " + CountRows().ToString()

并得到了负面结果…… O.o

还找到了一种有效的方法,我将其作为答案发布.但我不会接受它作为答案,但是有人有更好的方法来做到这一点=)

解决方法

我可以告诉你为什么出了问题……

> Count(Fields!Transfered.Value)只是行数.又名CountRows()
> Sum(Fields!Transfered.Value)试图聚合“true”或“false”=错误
> Sum(CInt(Fields!Transfered.Value))将-1和0相加,因为VB.NET true = -1
> Sum(IIF(Fields!Transfered.Value,1,0))修复了sign issue =你的解决方案

为了避免额外的IIF,你可以使用否定所有-1的总和

= -Sum(CInt(Fields!Transfered.Value)).ToString() + " / " + CountRows().ToString()

最后,任何一种解决方案都可以,而且两者都是同样重要的

(编辑:鄂州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读