【问题标题】:Don't return row if SUM() is zero如果 SUM() 为零,则不返回行
【发布时间】:2013-09-18 16:11:50
【问题描述】:

我有一个问题:

   SELECT DTH.PointPerson AS Person
          ,PDT.[Name] AS Project
          ,(CASE WHEN TSK.Name IS NULL THEN NULL
            WHEN SPT.[Name]+' - '+SPT.[Description] IS NULL THEN 'KanBan'
            ELSE SPT.[Name]+' - '+SPT.[Description]
            END) AS Sprint
          ,COALESCE(STY.[Number], NSS.IncidentNumber) AS Story
          ,TSK.[Name] AS Task
          ,SUM(CASE WHEN DATEPART(dw, DTH.ActivityDate) = 1 THEN DTH.[Hours] ELSE 0 END) AS Monday
          ,SUM(CASE WHEN DATEPART(dw, DTH.ActivityDate) = 2 THEN DTH.[Hours] ELSE 0 END) AS Tuesday
          ,SUM(CASE WHEN DATEPART(dw, DTH.ActivityDate) = 3 THEN DTH.[Hours] ELSE 0 END) AS Wednesday
          ,SUM(CASE WHEN DATEPART(dw, DTH.ActivityDate) = 4 THEN DTH.[Hours] ELSE 0 END) AS Thursday
          ,SUM(CASE WHEN DATEPART(dw, DTH.ActivityDate) = 5 THEN DTH.[Hours] ELSE 0 END) AS Friday
          ,SUM(CASE WHEN DATEPART(dw, DTH.ActivityDate) = 6 THEN DTH.[Hours] ELSE 0 END) AS Saturday
          ,SUM(CASE WHEN DATEPART(dw, DTH.ActivityDate) = 7 THEN DTH.[Hours] ELSE 0 END) AS Sunday
          ,SUM(DTH.[Hours]) AS Total
          FROM DailyTaskHours DTH
     LEFT JOIN Task TSK ON DTH.TaskId = TSK.PK_Task 
     LEFT JOIN Story STY ON TSK.StoryId = STY.PK_Story 
     LEFT JOIN NonScrumStory NSS ON DTH.NonScrumStoryId = NSS.PK_NonScrumStory 
     LEFT JOIN Sprint SPT ON STY.SprintId = SPT.PK_Sprint 
     LEFT JOIN Product PDT ON STY.ProductId = PDT.PK_Product
     GROUP BY  DTH.PointPerson, PDT.[Name], SPT.[Name]
               ,SPT.[Description]
               ,STY.[Number]
               ,NSS.IncidentNumber
               ,TSK.[Name]

如果:SUM(DTH.[Hours]) AS Total = 0 我希望不返回该行

我相信这种方法是使用 CASE WHEN,但我无法弄清楚它的确切位置。

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:

    group by之后添加having子句:

    HAVING SUM(DTH.[Hours]) <> 0 
    

    【讨论】:

      【解决方案2】:

      只需添加:

      HAVING SUM(DTH.[Hours]) > 0
      

      在查询结束时。

      【讨论】:

        猜你喜欢
        • 2019-02-15
        • 2011-02-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-30
        • 1970-01-01
        • 2015-07-11
        • 1970-01-01
        相关资源
        最近更新 更多