我们需要计算每个产品的碳足迹。碳足迹基本上是每个元素的碳足迹与组成给定产品的每个元素的百分比之和。
下面的代码是我们目前所拥有的,但它不起作用,我们还尝试使用sum(e.carbonfootprint*c.percentage/100)

SELECT p.name, e.carbonfootPrint * c.percentage/100 AS CarbonFootprintProdut
FROM Produt p, Element e, composed c, Brand b
WHERE p.tipo = 'lar'
    AND c.produt = p.code
    AND c.ProdBrand = m.number
    AND c.element = e.code;

最佳答案

不要在FROM子句中使用逗号。始终使用正确、明确的JOIN语法。

SELECT p.name,
       SUM(e.carbonfootPrint * c.percentage)/100 AS CarbonFootprintProdut
FROM Produt p JOIN
     Element e
     ON c.element = e.code JOIN
     composed c
     ON c.produt = p.code
WHERE p.tipo = 'lar'
GROUP BY p.name;

笔记:
brand表没有使用,所以我删除了它。
你需要聚合产品,这样你就得到了整个产品的总数。
你需要一个GROUP BY
使用正确的JOIN语法。

09-12 07:14