我现在不清楚这个问题,但是我有下表:

------------------------------
-- 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/

10-12 19:42