我现在不清楚这个问题,但是我有下表:
------------------------------
-- Recipe ----- Ingredients --
------------------------------
-- ID - ID --
-- Name - Name --
-- Cost - Cost --
-- Calories - Calories --
-- - RecipeName --
------------------------------
我创建了这个程序
DELIMITER !!!
CREATE PROCEDURE RecipeCost()
BEGIN
SELECT Ingredients.RecipeName,
MAX(( SELECT SUM(Ingredients.Cost)
FROM Ingredients
WHERE Recipe.Name = Ingredients.RecipeName)) AS Price
FROM Ingredients
JOIN Recette
WHERE Recette.Name= Ingredients.RecipeName;
END !!!
它正确显示了最高成本,但我无法显示与此成本关联的配方名称。
你知道为什么吗?
最佳答案
以下获取每个配方的成本:
select i.recipename, sum(i.cost)
from ingredients i
group by i.recipename;
为了获得最高的成本。 。 。
select i.recipename, sum(i.cost) as total_cost
from ingredients i
group by i.recipename
order by total_cost desc
limit 1;
不需要加入配方表,因为名称在配料表中。
关于mysql - 我有一个Sum(),其中a.name = b.name,我想选择最高的Sum()的名称:如何?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39056439/