如何在MySQL中基于多分组对单个列求和



我有两个表,一个是销售,另一个是品牌大师

我的要求:如何在MySQL中基于多分组对单个列求和

销售表的结构和数据:

SNo            BID          Amount
-----------------------------------
101             1            200
102             2            500
103             5            800
104             8            250
105             1            200
106             2            500
107             5            800
108             8            250

品牌大师表的结构和数据:

BID           BrandName          
-------------------------
1             Prod#1
2             Prod#2
3             Prod#3
4             Prod#4
5             Prod#5
6             Prod#6
7             Prod#7
8             Prod#8

我的预期输出:

BrandName           SumAmount          
-------------------------
Prod#1                  400
Prod#2 and Prod#3       500
Prod#4                    0
Prod#5                    0
Prod#6 and Prod#8      2100
Prod#7                    0

销售表包含品牌 ID"BID"和销售 ID 为"SNo"的销售额。我需要每个产品和多产品的销售额总和。请协助我。

参考文章:如何在MySQL中基于分组对单个列求和

您可能需要一些带有CASE

的东西
SELECT *
FROM Sales S
JOIN BrandMaster B
  ON S.`BID` = B.`BID`
GROUP BY CASE WHEN `BrandName` = 'Prod-1' THEN 'Prod-1'
              WHEN `BrandName` = 'Prod-2' 
                OR `BrandName` = 'Prod-3' THEN 'Prod-2 & Prod-3'
              WHEN `BrandName` = 'Prod-4' THEN 'Prod-4'
              WHEN `BrandName` = 'Prod-5' THEN 'Prod-5'
              WHEN `BrandName` = 'Prod-6'               
                OR `BrandName` = 'Prod-8' THEN 'Prod-6 & Prod-8'
              WHEN `BrandName` = 'Prod-7' THEN 'Prod-7'
          END   

最新更新