我正在研究咖啡店数据库并尝试查找每件商品的销售数量。该号码正确返回,但不是显示咖啡的名称和销售,而是显示所有咖啡名称和第一杯饮料的正确数据,然后所有咖啡名称都包含第二杯饮料的正确数据。
select p.ProductName, TotalSold = SUM(o.Quantity)
From MSProducts p, MSOrderline o
Group By p.ProductName, o.ProductID
输出应该是...... 1 FlavoredSyrup-Shot 11 2 ExtraExpresso 7 3. Americano-Small 5
虽然它不适合页面,但它继续下面的数量5。
答案 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
如果你没有映射,那么第一个表的所有行都将映射到第二个表的所有行。请使用公共列
进行映射