• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Problem beim erstellen einer Abfrage

skizZ

Mitglied
Hallo zusammen,

ich habe folgende Abfrage

PHP:
mysql_query("SELECT COUNT(*) as anzahl FROM buchungen WHERE gewerbe = '$gewerbe' AND gezahlt = 'nein' GROUP BY monat");
Dies funktioniert auch. Allerdings bekomme ich nur die Monate und Gesamtanzahl wo es nicht gezahlte Buchungen gab. Ich möchte aber, dass es am Ende wie folgt aussieht:

01(Monat): 0(Fehlende Buchungen)
02: 3
03: 0

Momentan habe ich es lediglich so:
02: 3

Wie kann ich die leeren Felder auch mitausgeben?

skizZ
 
Werbung:
Kannst du das nich auf PHP-Ebene regeln? Monate, die nicht in der Rückgabe vorhanden sind, haben die Anzahl „0“.

In SQL ist es immer etwas schwierig, Datensätze auszuwählen, die nicht existieren.
 
Hallo,

ich benutze die Daten um mir Diagramme mit Open Flash Chart erstellen zu lassen.
Ich wüsste nicht wie ich dies so realisieren könnte.

Ich dachte, dass es irgendwie die Möglichkeit gibt dies umzusetzen. Im Endeffekt liegt es ja an dem Group By, dass für den Monat "01" z.B. nichts angezeigt wird.
Das einzige was mir gerade dazu einfällt wäre eine Abfrage für jeden vorhandenen Monat. Ist aber irgendwie unschön, oder?

skizZ
 
Werbung:
Wie schon gesagt, da es keinen Datensätze gibt, kannst du das auch nicht mit einer sql Abfrage lösen. Unschön ist auch ein Feld Monat, mit SQL kannst du auch sehr schön mit Datumsfunktionen arbeiten und bist damit deutlich flexibler.

Aber wie mermshaus schon vorschlug, du kannst doch ohne Probleme, dort wo du die Datensätze dann abfragst die fehlenden Lücken füllen.
 
Hallo,

danke für eure Antworten. Ich habe es nun mit PHP gelöst. Ich habe also das Array zunächst für alle Monate mit 0 initialisiert und weiße dann einfach mit array[monat] = wert den entsprechenden Wert zu. Funktioniert super :-)
Das Feld Monat habe ich nur zur besseren und einfachereren Gruppierung als Hilfsfeld hinzugefügt.

skizZ
 
Was heißt denn Hilfsfeld? Bedeutet das es bereits ein Datumfeld gibt? Dann kannst du einfach daraus mit der Funktion month bei der abfrage den Monat extrahieren. Z.b. so:

PHP:
mysql_query("SELECT COUNT(*) as anzahl, MONTH(datum) AS monat 
FROM buchungen 
WHERE gewerbe = '$gewerbe' AND gezahlt = 'nein'
GROUP BY monat");
 
Werbung:
Hi,

funktioniert super, danke! :-)
Dieses Wissen hilft mir entsprechend weiter immer nur Diagramme fürs aktuelle Jahr auszugeben ohne ein Hilfsfeld Jahr :-)

Nochmals danke!
 
Werbung:
Zurück
Oben