mysql - 我的 sql 查询根据多个条件对列值求和

标签 mysql

查询表结果

 SELECT cc.Contact_ID
      , SUM(HeadCount)
      , c.ClientID
      , c.Client_Name 
      , cc.Contact_Name
      , cc.Role
      , cs.Communication
      , cs.ResponseTime
      , cs.LeadershipStyle
      , cs.Trust
      , cs.Sentiment
   FROM client c 
   LEFT 
   JOIN client_contact cc 
     ON c.ClientID = cc.Client_ID 
   JOIN process p 
     ON c.ClientID = p.ClientID 
    AND cc.Contact_Process = p.ProcessID
   JOIN verticals v 
     ON v.VerticalID = cc.Contact_Vertical
   LEFT 
   JOIN client_sentimental_indicator cs 
     ON cs.ClientContactID = cc.Contact_ID
  WHERE c.STATUS = 1 
    AND p.ProcessStatus = 0
    AND cc.status = 0   
  GROUP 
     BY c.ClientID
      , cc.Contact_ID
  ORDER 
     BY c.client_Name

这是表格结果

ID  Sum(headcount) CID     CName        contname
339   6            340      xxx         Inc Andy Stetson        
340   3            340      xxx         Danielle du Toit        
351   3            322      yyy         Ron Mahulkar        
350   3            322      zzz         Nicholas Ho     
349   3             322     zzz         Will Power      
271   74            102     vvv         Carie Hinton        
338   31            102     vvv         Linda Dunn      
283   9             102     vvv         Waseem Khan 

我需要如下结果

ID  Sum(headcount) exactSum CID    CName        contname
339   6            9        340     xxx         Inc Andy Stetson        
340   3                     340     xxx         Danielle du Toit        
351   3            3        322     yyy         Ron Mahulkar        
350   3                     322     zzz         Nicholas Ho     
349   3                     322     zzz         Will Power      
271   74           114      102     vvv         Carie Hinton        
338   31                    102     vvv         Linda Dunn      
283   9                     102     vvv         Waseem Khan 

我有CID重复,需要重复显示,需要根据CID求和

请大家帮忙

最佳答案

SELECT cid
     , MIN(id)
     , SUM(subtotal
  FROM 
     ( SELECT cc.Contact_ID
            , SUM(HeadCount) subtotal
            , c.ClientID
            , c.Client_Name 
            , cc.Contact_Name
            , cc.Role
            , cs.Communication
            , cs.ResponseTime
            , cs.LeadershipStyle
            , cs.Trust
            , cs.Sentiment
         FROM client c 
         LEFT 
         JOIN client_contact cc 
           ON c.ClientID = cc.Client_ID 
         JOIN process p 
           ON c.ClientID = p.ClientID 
          AND cc.Contact_Process = p.ProcessID
         JOIN verticals v 
           ON v.VerticalID = cc.Contact_Vertical
         LEFT 
         JOIN client_sentimental_indicator cs 
           ON cs.ClientContactID = cc.Contact_ID
        WHERE c.STATUS = 1 
          AND p.ProcessStatus = 0
          AND cc.status = 0     
        GROUP 
           BY c.ClientID
            , cc.Contact_ID
      ) a
  GROUP
     BY cid;

关于mysql - 我的 sql 查询根据多个条件对列值求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38504693/

相关文章:

php - 将本地存储 key 保存到 MySQL

c# - Entity Framework 查询忽略我的 orderby

php - 根据月和年定期mysql在两个日期之间选择

php - 网页安装程序——数据库部署

mysql - group_concat 是否有长度限制或其他无法在文本字段上工作的原因

php - Yii findByAttribute() 函数 WITH() 关系查询

mysql - 保存期间小数部分舍入错误

mysql - 连接创建错误的结果查询

php - 仅获取某个日期范围内可用的产品

mysql - 如何计算小数点后的位数?