【问题标题】:Display Rows only if group of rows' sum is greater then 0仅当行组的总和大于 0 时才显示行
【发布时间】:2014-02-06 10:52:40
【问题描述】:

我有一张像下面这样的桌子。我想将此数据发送到 SSRS(按 LineID 和 Product 和 Column 分组为 Hour),以仅显示每个 LineID 和 Product 的 HourCount > 0 的那些行。

LineID  Product Hour    HourCount
3   A   0   0
3   A   1   0
3   A   2   0
3   A   3   0
3   A   4   0
3   A   5   0
3   B   0   65
3   B   1   56
3   B   2   45
3   B   3   34
3   B   4   43
3   B   5   45
4   A   0   54
4   A   1   34
4   A   2   45
4   A   3   44
4   A   4   55
4   A   5   44
4   B   0   0
4   B   1   0
4   B   2   0
4   B   3   0
4   B   4   0
4   B   5   0
5   A   0   45
5   A   1   77
5   A   2   66
5   A   3   55
5   A   4   0
5   A   5   0
5   B   0   0
5   B   1   0
5   B   2   45
5   B   3   0
5   B   4   0
5   B   5   0

基本上我希望这张表在 SSRS 中之前看起来像这样:

LineID  Product Hour    HourCount
3   B   0   65
3   B   1   56
3   B   2   45
3   B   3   34
3   B   4   43
3   B   5   45
4   A   0   54
4   A   1   34
4   A   2   45
4   A   3   44
4   A   4   55
4   A   5   44
5   A   0   45
5   A   1   77
5   A   2   66
5   A   3   55
5   A   4   0
5   A   5   0
5   B   0   0
5   B   1   0
5   B   2   45
5   B   3   0
5   B   4   0
5   B   5   0

因此,仅当任何 Hourd 的 HourCount 高于 0 时才显示该行的 Product。

是否有任何查询可以为我提供这些结果,或者我应该使用 SSRS 中的显示设置?

【问题讨论】:

    标签: sql sql-server sql-server-2008 reporting-services ssrs-2008


    【解决方案1】:

    这样的事情应该可以工作:

    with NonZero as
    (
      select *
        , GroupZeroCount = sum(HourCount) over (partition by LineID, Product)
      from HourTable
    )
    select LineID
      , Product
      , [Hour]
      , HourCount
    from NonZero
    where GroupZeroCount > 0
    

    SQL Fiddle with demo.

    您当然可以在 SSRS 中使用类似的东西,但在 T-SQL 级别应用它肯定更容易和直观。

    【讨论】:

      【解决方案2】:

      我想你正在寻找

      SELECT LineID,Product,Hour,Count(Hour) AS   HourCount 
          FROM abc   
          GROUP BY LineID,Productm,Hour   HAVING Count(Hour) > 0 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-06-23
        • 1970-01-01
        • 1970-01-01
        • 2017-09-28
        • 2013-10-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多