Select SUM Mit Limit

Thomas_Jung

Erfahrenes Mitglied
Hallo
Folgender Code zeigt mit die Summe im Feld Meter an.
Funktioniert auch super.

PHP:
SELECT SUM(Meter) FROM datenbank WHERE ( ( Firma = '1' ) AND ( Status = '1' or Status = '2' ) AND ( Gruppe = '1' or Gruppe = '2' or Gruppe = '3' or Gruppe = '4' or Gruppe = '5' or Gruppe = '6' or Gruppe = '7' or Gruppe = '8' ) )

Wie muss ich den Code verändern das das auch mit Limit funktioniert.




SELECT SUM(Meter) FROM datenbank WHERE ( ( Firma = '1' ) AND ( Status = '1' or Status = '2' ) AND ( Gruppe = '1' or Gruppe = '2' or Gruppe = '3' or Gruppe = '4' or Gruppe = '5' or Gruppe = '6' or Gruppe = '7' or Gruppe = '8' ) ) LIMIT 50, 50



Gruß Thomas
 
Radhad hat Recht, Du bekommst so immer nur eine Zeile im Resultset.

Vlt. willst Du für jede Gruppe (Deiner Where-Klausel) eine Summe?
Dann sieht das Statement so aus:

SQL:
SELECT Gruppe, SUM( Meter ) FROM Datenbank WHERE ... GROUP BY Gruppe
 
Zuletzt bearbeitet von einem Moderator:
Hallo

Habe gedacht es gibt noch einen anderen Weg als die Meter zu addieren.

Lösung:
PHP:
    $abfrage = "SELECT * FROM datenbank LIMIT 100,100";
    $ergebnis = mysql_query($abfrage);
    while($row = mysql_fetch_array($ergebnis))
    {
	$gesammtMeter = $gesammtMeter+$row["Meter"];
    }
	echo $gesammtMeter;

Oder gibt es noch einen anderen Weg?

Gruß Thomas
 
Was willst du denn überhaupt erreichen? Irgendwie scheint mit das MySQL Limit da ein wenig fehl am Platze...
 
Hallo Mamphil

Du hast den Nagel auf den Kopf getroffen ...

Genau das macht ja auch die Abfrage ich möchte die Summe wissen .

PHP:
$abfrage = "SELECT * FROM datenbank LIMIT 100,100";
    $ergebnis = mysql_query($abfrage);
    while($row = mysql_fetch_array($ergebnis))
    {
    $gesammtMeter = $gesammtMeter+$row["Meter"];
    }
    echo $gesammtMeter;

Im Feld Meter befinden sich Eingaben wie 1 50 66 0,3 5
Nun möchte ich das am Ende der aufgerufenen Datensätze die Summe 116,3 steht.
Was die obige Abfrage auch macht.
Ich wollte nur wissen ob es noch eine andere Möglichkeit gibt.

Gruß Thomas
 
Hallo Thomas,

schau mal hier.

http://dev.mysql.com/doc/refman/4.1/en/select.html

Dort findest du die Beschreibung zum LIMIT.
Auszug:

With two arguments, the first argument specifies the offset of the first row to return, and the second specifies the maximum number of rows to return. The offset of the initial row is 0 (not 1):

SELECT * FROM tbl LIMIT 5,10; # Retrieve rows 6-15

Der Limit beschränkt demnach nur die selektierte Datenmenge, nicht aber die Breite der Ergebnismenge.

Ich kann die Frage von zeja nur wiederholen: Was möchtest du aus deiner Datenbank selektieren und was soll am Bildschirm als Ergebnis erscheinen?
 
Hallo Thomas,

wenn du nur die Summe (Gesamtmeter) anzeigen willst, reicht deine Abfrage
SELECT SUM(Meter) FROM datenbank WHERE ( ( Firma = '1' ) AND ( Status = '1' or Status = '2' ) AND ( Gruppe = '1' or Gruppe = '2' or Gruppe = '3' or Gruppe = '4' or Gruppe = '5' or Gruppe = '6' or Gruppe = '7' or Gruppe = '8' ) ) LIMIT 50, 50
ohne den Zusatz LIMIT.
Wenn du jedoch die Einzelwerte auch darstellen möchtest, wirst du das besser mit einer Programmiersprache (Java, PHP) regeln.
 
Zurück