PHP MySQL - Berechnung von Werten mit gleicher Nummer (nicht ID!)

Cinderella22

Lt. Junior Grade
Registriert
Mai 2015
Beiträge
260
Hallo sitze schon seit einiger Zeit an einem kleinen Projekt und brauche Hilfe.

Konkret gehts darum, dass ich folgende Tabelle habe:

[table="width: 500"]
[tr]
[td]ID[/td]
[td]Bezeichnung_ID[/td]
[td]Bezeichnung[/td]
[td]Wert[/td]
[/tr]
[tr]
[tr]
[td]1[/td]
[td]001[/td]
[td]Test1[/td]
[td]20[/td]
[/tr]
[/tr]
[tr]
[tr]
[td]2[/td]
[td]002[/td]
[td]Test1[/td]
[td]10[/td]
[/tr]
[/tr]
[tr]
[tr]
[td]3[/td]
[td]001[/td]
[td]Test1[/td]
[td]40[/td]
[/tr]
[/tr]
[/table]
Vereinfacht dargestellt natürlich.
Jetzt möchte ich, dass die Werte mit gleicher Bezeichnung_ID zusammengerechnet werden.
Weiter gehts darum, dass am ende erreicht werden soll, dass bei Überschreitung eines bestimmten Wertes eine farbliche Markierung erfolgen soll. Das mit der Markierung bekomme ich auch hin, allerdings nur für jede Zeile einzeln. Wichtig wäre, dass auch die anderen Zeilen mit gleicher Bezeichnung_ID eingerechnet werden.

Berechnung habe ich sowohl über PHP probiert als auch in der MySQL Datenbank selbst - aber irgendwie komm ich gedanklich nicht weiter und habe keinen Ansatzpunkt, wie ich da ran gehen muss

Hoffe ich konnte rüber bringen was ich meine.
 
SELECT Bezeichnung_ID, SUM(Wert) FROM tabelle GROUP BY Bezeichnung_ID
 
Hallo,

danke für die schnelle Hilfe - funktioniert soweit ganz gut!

Natürlich habe ich die Tabelle in der Zwischenzeit erweitert und stehe nun vor einem neuen Problem

[table="width: 500"]
[tr]
[td]ID[/td]
[td]Bezeichnung_ID[/td]
[td]Bezeichnung[/td]
[td]Wert1[/td]
[td]Wert2[/td]
[td]Wert3[/td]
[td]Gesamt[/td]
[/tr]
[tr]
[tr]
[td]1[/td]
[td]001[/td]
[td]Test1[/td]
[td]20[/td]
[td]10[/td]
[td]5[/td]
[td]35[/td]
[/tr]
[/tr]
[tr]
[tr]
[td]2[/td]
[td]002[/td]
[td]Test1[/td]
[td]10[/td]
[td]20[/td]
[td]1[/td]
[td]31[/td]
[/tr]
[/tr]
[tr]
[tr]
[td]3[/td]
[td]001[/td]
[td]Test1[/td]
[td]40[/td]
[td]80[/td]
[td]7[/td]
[td]127[/td]
[/tr]
[/tr]
[/table]

jetzt versuche ich die Werte entsprechend der Bezeichnung_ID zusammen zu zählen. Also konkret:

Der Eintrag mit der ID 1 und 3 haben ja die selbe Bezeichung_ID - dementsprechend müssen diese zusammengerechnet werden.

Und dazu gleich mal eine Frage generell, wie sieht es denn aus, ist es sinnig solche Berechnungen über PHP laufen zu lassen oder sollte man das gleich in der DB berechnen?
 
Die Antwort hast du doch schon bekommen:

SELECT Bezeichnung_ID, SUM(Wert) FROM tabelle GROUP BY Bezeichnung_ID

Oder willst du alle Werte (Wert1, Wert2, Wert3) mit der gleichen bezeichnungsid zusammenzählen?

Was erwartest du bei deinem Beispiel als Ergebnis?

Generell sollte man solche Berechnungen direkt im SQL machen.
 
Ja genau, ich will alle werte mit der gleichen Beizeichnung_ID zusammelnzählen
Als Ergebnis erwarte ich dann z. B. für die Bezeichnungs_ID 001 162 (127+35)

In der Ausgabe gäbe es dann halt eine weitere Spalte, neben Gesamt dann Gesamt2.
 
Auch wenn ich den Sinn einer solchen Tabellenstruktur nicht gänzlich verstehe:

select
bezeichnung_id,
SUM(wert1+wert2+wert3)
from tabelle
group by bezeichnung_id
 
Wenn z.B. alle Werte in Euro sind, also sie sind gleichwertig, verstehe ich auch nicht warum du drei Spalten für drei Werte hast. Und solltest du verschiedene größen vermengen, wirkt das auch sehr eigenartig solltest du die nur summieren. Ich glaube deine Tabelle ist nicht richtig normalisiert, mal abgesehen dass ich solche Mengen lieber in einer neuen View anlegen würde.
 

Ähnliche Themen

Zurück
Oben