2017-12-11 3 views
2

Wir müssen den CO2-Fußabdruck für jedes Produkt berechnen, das wir erhalten. Der CO2-Fußabdruck ist im Wesentlichen die Summe des Produkts des Kohlenstofffußabdrucks jedes Elements mit dem Prozentsatz jedes Elements, aus dem ein bestimmtes Produkt besteht. Der folgende Code ist, was wir haben so weit, aber es funktioniert nicht, wir haben versucht, auch SUM zu verwenden (e.carbonfootPrint * c.percentage/100)MYSQL Summierung

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; 

Antwort

1

Nie Kommas in der FROM Klausel. Immer verwenden Sie die richtige, explizite JOIN Syntax.

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; 

Hinweise:

  • Die brand Tabelle nicht verwendet wird, so nahm ich es.
  • Sie müssen das Produkt aggregieren, so erhalten Sie die Summe für das gesamte Produkt.
  • Sie benötigen eine GROUP BY.
  • Verwenden Sie die korrekte Syntax JOIN.
+0

es funktioniert immer noch nicht, es gibt die gleichen Werte für alle Produkte zurück, wenn wir verschiedene haben sollten – gabrielascm

+0

@gabrielascm. . . Dies sollte für jede Zeile in der Ergebnismenge einen anderen Wert zurückgeben, sofern die Daten nicht für jedes Produkt gleich sind. –