代码之家  ›  专栏  ›  技术社区  ›  Spence

SQL Server报告聚合函数

  •  1
  • Spence  · 技术社区  · 15 年前

    G'Day.

    当涉及到SQL Server报表和我的vb.net知识正在老化时,我就是一个n00b。

    我有一个数据库中行的详细报告,其中一列可以为空。我要做的是在结果中的数据上显示一个简单的饼图,它显示有多少行有值,有多少行没有值。

    我不知道如何在数据系列的表达式中编写count()聚合以便它进行筛选。

    如。

    我有10000行,其中2000行是空的。我想要一个显示两个结果的饼图,一个小的2000块饼图,一个大的8000块饼图。当我试着做的时候 =Count(IsDbNull(Fields!TransactionID.Value)) =Count(Not IsDbNull(Fields!TransactionID.Value)) 它似乎发送了两次相同的结果,即结果集仍然是相同的大小,它只是由真假两部分组成。

    为你的帮助干杯。

    2 回复  |  直到 15 年前
        1
  •  2
  •   StrateSQL    15 年前

    因为您使用的是count,所以您只是在计算值;isdbnull返回的是true或false,这两个值都在计算中。

    尝试为非空值执行此操作 =总和(IIF)(不是(字段!transactionid.value),0,1) 对于空值使用 =总和(IIF)(不是(字段!transactionid.value),1,0)

    实际上,对于非空值,可以只使用count(字段!事务ID.value)

        2
  •  1
  •   gbn    15 年前

    我要用这种东西

    • -总和(CINT(isdbnull)(字段!transactionid.value)))
    • 伯爵(田地)!transactionid.value)+sum(cint(notisdbnull)(字段!transactionid.value)))

    按字面计算值,与SQL服务器相同。所以:

    • isdbnull给出了true/false->-1/0->和,它给出了空值的数目(当然是负数)。
    • 然后取全计数,减去和得到非空计数