Anzahl Datensätze

yardimcim

Mitglied
Hallo ich bins wieder :(
Ich muss zugeben ich fühle mich schon viel besser mit PHP. Wenn es, aber um MySQL geht denke ich entweder kompliziert oder ich brauche mehr Übung... Aber das werde ich auch hoffentlich hinbekommen.

Die gesamte Anzahl von Datensätzen bekomme ich problemlos. Nur ich möchte aber z.B. so was haben:
Sie haben 3 -> "Sehr Gut" Bewertungen.
4 -> "Gut" Bewertungen
11-> "Schlechte" Bewertungen

Vernünftiges Query bekomme ich nicht hin. Ich muss doch aufjedenfalln sql-abfrage machen und dann ausgeben, anders dürfte es nicht gehen oder?
 
Nunja, wenn wir wüssten wie die Tabellen Aussehen....

Ich geh aber mal davon aus, dass das folgende ungefähr das ist was du suchst

SQL:
SELECT
	user,
	SUM(IF(bewertung = 'sehr gut', 1, 0)) AS count_sehr_gut,
	SUM(IF(bewertung = 'gut', 1, 0)) AS count_gut,	
	SUM(IF(bewertung = 'schlecht', 1, 0)) AS count_schlecht
FROM
	mytyble
GROUP BY
	user
 
Zuletzt bearbeitet von einem Moderator:
Ohh mann SQL muss ich noch viieeell lernen... Ich finde es irgendwie kompliziert. Aber naja wird schon :)

Also ich habe eine Tabelle Bucher da habe ich eine Spalte mit "bewertung". Da steht entw. 1(für sehr gut), 2(für gut) und 3(für schlecht). In diese Tabelle wird von verschiedenen Benutzern die Bewertungen gespeichert.
Ist das etwas verständlicher?

Ich habe es so versucht aber da kommt zwar keine Fehlermeldung sondern nur 0. Ich glaube es liegt bei der Ausgabe. row stimmt nicht oder?

Code:
$sql = "SELECT bewertung, SUM(IF(bewertung = 'sehr gut', 1, 0))
AS count_sehrgut, SUM(IF(bewertung = 'gut', 1, 0))
AS count_gut, SUM(IF(bewertung = 'schlecht', 1, 0)) AS count_schlecht FROM provision GROUP BY bewertung";
$result = mysql_query($sql) or die(mysql_error);
$row = mysql_fetch_assoc($result);
?>
<table border="1">
<tr>

     <td><?php echo "\n".$row['count_sehrgut']."\n"; ?></td>
     <td><?php echo "\n".$row['count_gut']."\n"; ?></td>
     <td><?php echo "\n".$row['count_schlecht']."\n"; ?></td>

</tr>

</table>
 
Hallo,

versuch es mal so:

PHP:
$sql = "SELECT bewertung, SUM(IF(bewertung = 'sehr gut', 1, 0)) AS count_sehrgut, 
                          SUM(IF(bewertung = 'gut', 1, 0)) AS count_gut, 
                          SUM(IF(bewertung = 'schlecht', 1, 0)) AS count_schlecht 
                          FROM provision";
$result = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_object($result);
?>
<table border="1">
<tr>
 
     <td><?php echo "\n".$row->count_sehrgut."\n"; ?></td>
     <td><?php echo "\n".$row->count_gut."\n"; ?></td>
     <td><?php echo "\n".$row->count_schlecht."\n"; ?></td>
 
</tr>
 
</table>


LG Sven
 
Hey,

alternativ könnte man auch ein CONT(*) mit einer GROUP BY Funktion nehmen.
(Falls mehrere Bewertungen dazu kommen, wäre eine IF vllt. "aufwendiger")

Beispiel:
SQL:
SELECT bewertung, COUNT(*) FROM provision GROUP BY bewertung;

Jedoch müsstest du dann dein Result anders auslesen.

mfg
bo
 
Zuletzt bearbeitet von einem Moderator:
Hey,

heißt das, dass der SQL Server pro GROP BY -Resultat eine "interne" SELECT Anweisung ausführt?

mfg
bo
 
Sorry, hab wieder mal nicht genug weit zurückgelesen um das ganze Problem anzuschauen. ich nehm meine letzte Antwort zurück
 
Zurück