Ich hab mal eine Frage an die SQL-Spezis!!
Folgende Tabelle:
Projekt 1 2008 80€
Projekt 1 2008 20€
Projekt 1 2009 40€
Projekt 2 2007 50€
Projekt 2 2008 30€
Projekt 2 2008 20€
Projekt 2 2010 30€
Projekt 3 2009 50€
Projekt 3 2009 30€
Wie kann ich eine Abfrage machen, die nach Projekt PRO Jahr summiert? Also so:
Projekt 1 2008 100€
Projekt 2 2008 xxx€
Projekt 3 2008 xxx€
Projekt 1 2009 xxx€
und so weiter. Für jedes Projekt und jedes Jahr genau eine Zeile.
Danke!!!
Gruß
XD
Seite 1 von 1
Sql-abfrage help :)
Anzeige
#2
geschrieben 23. Februar 2010 - 15:06
Hm,
nur das ich das richtig verstehe, du suchst einen einzigen query der dir das Ergebnis liefert?
Mittels SUM() kannst du zwar schön Summen bilden und z.b. nach Jahr ODER Projekt ausgeben, aber ich habe bisher keinen query gesehen wo man kombiniert 2 verschiedene werte erhalten konnte.
So sieht das dann eben "einzeln" aus.
Das ganze könntest du ja jetzt in Arrays packen, und dann nacheinander ausgeben.
nur das ich das richtig verstehe, du suchst einen einzigen query der dir das Ergebnis liefert?
Mittels SUM() kannst du zwar schön Summen bilden und z.b. nach Jahr ODER Projekt ausgeben, aber ich habe bisher keinen query gesehen wo man kombiniert 2 verschiedene werte erhalten konnte.
So sieht das dann eben "einzeln" aus.
SELECT SUM(Projekt 1) AS SummeP1 FROM tabelle GROUP BY Jahr SELECT SUM(Projekt 2) AS SummeP2 FROM tabelle GROUP BY Jahr ...
Das ganze könntest du ja jetzt in Arrays packen, und dann nacheinander ausgeben.
Dieser Beitrag wurde von MS Master bearbeitet: 23. Februar 2010 - 15:12
#3
geschrieben 23. Februar 2010 - 15:17
Dann versucht mal den da:
SELECT Proj,Jahr,SUM(Eur) FROM `TestADD` GROUP BY Proj,Jahr
Dieser Beitrag wurde von SteinBeiser bearbeitet: 23. Februar 2010 - 15:22
#4
geschrieben 23. Februar 2010 - 15:19
Ich würd mir zuerst Tabellen projezieren, die nach einzelnen Projekten aufgeschlüsselt sind. Dann kannst du in diesen Tabellen eine entsprechenden Abfrage machen und nach Jahr gruppieren.
Ich bin nicht so sicher in der Syntax, aber im Grunde machst du ein SELECT jahr, geld FROM tabelle_ursprung WHERE projekt = projekt.
Dann kriegste ne Tabelle:
Tabelle Projekt1
2008 30€
2008 20
2009 40
...€
Und dadrauf summierst du. SELECT SUM(geld), jahr FROM Projekt1 GROUP BY jahr.
Das ist das Problem, wenn die Tabellen nicht in Normalform vorliegen. Die Tabelle oben verletzt die 2. oder 3. Normalform. Ich würd jetzt spontan sagen, 2NF ist verletzt, das macht das ganze unnötig kompliziert.
Ich bin nicht so sicher in der Syntax, aber im Grunde machst du ein SELECT jahr, geld FROM tabelle_ursprung WHERE projekt = projekt.
Dann kriegste ne Tabelle:
Tabelle Projekt1
2008 30€
2008 20
2009 40
...€
Und dadrauf summierst du. SELECT SUM(geld), jahr FROM Projekt1 GROUP BY jahr.
Das ist das Problem, wenn die Tabellen nicht in Normalform vorliegen. Die Tabelle oben verletzt die 2. oder 3. Normalform. Ich würd jetzt spontan sagen, 2NF ist verletzt, das macht das ganze unnötig kompliziert.
Dieser Beitrag wurde von LoD14 bearbeitet: 23. Februar 2010 - 15:21
#5
geschrieben 23. Februar 2010 - 15:20
@Steinbeiser: Läuft... Danke!!! :-)
Wusste ja nicht, dass mein GROUP BY mit mehreren Spalten machen kann ich Torfkopp
Wusste ja nicht, dass mein GROUP BY mit mehreren Spalten machen kann ich Torfkopp
#7
geschrieben 23. Februar 2010 - 15:25
@SteinBeiser
Danke für den Tipp, das kannte ich bisher auch noch nicht. Kann man immer wieder gebrauchen
Danke für den Tipp, das kannte ich bisher auch noch nicht. Kann man immer wieder gebrauchen
Thema verteilen:
Seite 1 von 1