SQL显示正确的数字,名称

时间:2017-04-17 16:55:17

标签: sql

我正在研究咖啡店数据库并尝试查找每件商品的销售数量。该号码正确返回,但不是显示咖啡的名称和销售,而是显示所有咖啡名称和第一杯饮料的正确数据,然后所有咖啡名称都包含第二杯饮料的正确数据。

select p.ProductName, TotalSold = SUM(o.Quantity)
From MSProducts p, MSOrderline o
Group By p.ProductName, o.ProductID

enter image description here

输出应该是...... 1 FlavoredSyrup-Shot 11 2 ExtraExpresso 7 3. Americano-Small 5

虽然它不适合页面,但它继续下面的数量5。

2 个答案:

答案 0 :(得分:2)

我认为缺少连接条件是导致数据重复的原因。如果您在两个表中都有ProductID,这可能会有效。

select p.ProductName, SUM(o.Quantity) as TotalSold
From MSProducts p
inner join MSOrderline o
on p.ProductID = o.ProductID
Group By p.ProductName

答案 1 :(得分:1)

您需要正确映射两个表。

MSProducts p, MSOrderline o

如果你没有映射,那么第一个表的所有行都将映射到第二个表的所有行。请使用公共列

进行映射