簡體   English   中英

Mysql基於多個列選擇唯一記錄,並且僅顯示組和總金額

[英]Mysql Select unique record based on multiple columns and display only group and sum amount

嗨,我正在嘗試查詢一個在代碼,金額和狀態上包含多個重復項的表,如果我只有一個要根據client_group名稱獲取結果組並獲取該組下的金額之和,該怎么辦

SELECT `client`.`client_group` 
,  FORMAT(SUM(`Data_result`.`Data_result_amount` ),2) as sum
FROM
  `qwer`.`Data_result`
  INNER JOIN `qwer`.`Data` 
      ON (`Data_result`.`Data_result_lead` = `Data`.`Data_id`)
  INNER JOIN `qwer`.`Data_status` 
      ON (`Data_result`.`Data_result_status_id` = `Data_status`.`Data_status_id`)
  INNER JOIN `qwer`.`client` 
      ON (`Data`.`Data_client_id` = `client`.`client_id`)
WHERE `Data_status`.`Data_status_name` IN ('PAID') AND  MONTH(`Data_result`.`result_ts`) = MONTH(CURRENT_DATE())
AND YEAR(`Data_result`.`result_ts`) = YEAR(CURRENT_DATE())
GROUP BY `client`.`client_group`

所述查詢結果:

在此處輸入圖片說明

在此處輸入圖片說明

在運行“ sum”之前嘗試區分,以檢查是否可以解決您的問題

    SELECT `client_group` ,  FORMAT(SUM(`Data_result_amount` ),2) as sum from (
    SELECT DISTINCT `client`.`client_group` , `Data_result`.`Data_result_amount` 
    FROM
      `qwer`.`Data_result`
      INNER JOIN `qwer`.`Data` 
          ON (`Data_result`.`Data_result_lead` = `Data`.`Data_id`)
      INNER JOIN `qwer`.`Data_status` 
          ON (`Data_result`.`Data_result_status_id` = `Data_status`.`Data_status_id`)
      INNER JOIN `qwer`.`client` 
          ON (`Data`.`Data_client_id` = `client`.`client_id`)
    WHERE `Data_status`.`Data_status_name` IN ('PAID') AND  MONTH(`Data_result`.`result_ts`) = MONTH(CURRENT_DATE())
    AND YEAR(`Data_result`.`result_ts`) = YEAR(CURRENT_DATE())
    ) T
    GROUP BY `client_group`

您可以在此處檢查查詢http://sqlfiddle.com/#!9/36a3f8/6

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM