SQL显示总销售额

时间:2015-07-19 08:02:53

标签: mysql sql-server

我想选择每个类别的总销售额 这是我的表:( catNo =类别编号prodNo =产品编号)

OrderLine:
prodNo ordNo actualPrice qty
P0001  OR001 3.00        20
P0002  OR002 3.00        2
P0003  OR003 500.00      25
Product:    
prodNo prodName  prodPrice   prodPhoto       stockQty catNo  suppNo
P0001  OverPower 1500.00     OP_C4_Black.jpg 10       CAT05  S0001
P0002  Vain      300.00      Vain.jpg        5        CAT04  S0002
P0003  test      500.00      test.jpg        40        CAT05 S0001

我的SQL命令是

SELECT `catNo` , sum(`actualPrice`*`qty`)as `Total Sales` 
FROM `orderline` , `product` 
WHERE `orderline`.`prodNo` = `product`.`prodNo` 
GROUP BY `orderline`.`prodNo`;

我想要的是

catNo   Total Sales
CAT05   12560.00
CAT04   6.00

实际输出是什么

catNo   Total Sales
CAT05   60.00
CAT04   6.00
CAT05   12500.00

如何显示每个类别的总销售额?

3 个答案:

答案 0 :(得分:1)

SELECT `catNo` , sum(`actualPrice`*`qty`)as `Total Sales` 
FROM `orderline` , `product` 
WHERE `orderline`.`prodNo` = `product`.`prodNo` 
GROUP BY `catNo`;

试试这个,我希望它有所帮助。

答案 1 :(得分:1)

不应按产品编号分组,而应按类别编号进行分组:

SELECT `catNo` , sum(`actualPrice`*`qty`)as `Total Sales` 
FROM `orderline` , `product` 
WHERE `orderline`.`prodNo` = `product`.`prodNo` 
GROUP BY `Product`.`catNo`;

答案 2 :(得分:1)

catNo分组。然后你会得到想要的结果:

SELECT `catNo` , sum(`actualPrice`*`qty`)as `Total Sales` 
FROM `orderline` , `product` 
WHERE `orderline`.`prodNo` = `product`.`prodNo` 
GROUP BY `catNo`

结果:

catNo   Total Sales
-------------------
CAT04   6
CAT05   12560

SQL Fiddle

中的示例结果