Anzahl an Einträgen mit verschiedenem Datum ...

ronin

Erfahrenes Mitglied
Mahlzeit zsamme.


Mich beschäftigt ein Problem, welches ich durch überlegen und studieren net mehr lösen kann. Meine Datenbank ist folgendermaßen aufgebaut
Code:
datum | account_id | hitsin | hitsout

In datum wird der timestamp eines betreffenden Tages geschrieben, z.B. 12345 für den 12.5.2004 (is net der TS, aber egal). Der Timestamp kann auch öfters vorkommen in verbindung mit einer anderen account_id Nummer. Wenn es z.B. 400 Accounts gibt, kann es für den Tag 12345 400 Einträge mit den unterschiedlichen account_ids geben.

Ich möchte mit meinem MySQL nun rausfinden wie viele verschiedene Datumswerte es gibt.
Achtung: wie viele verschiedene Werte

Beispiel:
Code:
datum | account_id
12345 | 1
12345 | 7
12345 | 4
Ergebnis: 1

--------------

Code:
datum | account_id
12345 | 1
12345 | 7
12345 | 4
54321 | 1
54321 | 9
Ergebnis: 2


Die Ideen
PHP:
$menge = mysql_result(mysql_query(SELECT DISTINCT count(*) datum FROM dba), 0);
oder
PHP:
$menge = mysql_result(mysql_query(SELECT DISTINCT count(datum) FROM dba), 0);
haben mich noch nicht auf den richtigen Pfad gebracht.
Wahrscheinlich liegt mir aber auch nur nen Stein im Weg der Erkenntnis.


Wenn sich jemand meines blanken Unwissens erbarmen möchte, ich wäre dankbar.


Grüße, Ronin ;)
 
1. post und ich versuche dir mal zu helfen ;)

Ist jetzt alles aus dem Kopf, ob syntax 100 % stimmt kann ich dir nicht versprechen!

Du kannst gleiche Einträge mit GROUP BY zusammenfassen.
Beispiel:
PHP:
$menge = mysql_result(mysql_query(SELECT datum,  count(*) FROM dba GROUP By datum), 0);

sollte so klappen :)
 
Tut mir Leid dich enttäuschen zu müssen ... aber das klappt so nicht.
PHP:
$menge = mysql_result(mysql_query(SELECT datum,  count(*) FROM dba GROUP By datum), 0);

Liefert leider nur nen Timestamp von datum. :(
 
Folgendes SQL-Statement ausführen:
Code:
select distinct datum from dba
und mit [phpf]mysql_num_rows[/phpf] die Anzahl der zurückgegebenen Datensätze abrufen.

Schlagt mich, aber ich verstehe nicht, warum euer Code überhaupt funktioniert. Die SQL-Anweisung gehört in Quotes.

snuu
 
Original geschrieben von snuu
Folgendes SQL-Statement ausführen:
Code:
select distinct datum from dba
und mit [phpf]mysql_num_rows[/phpf] die Anzahl der zurückgegebenen Datensätze abrufen.

Schlagt mich, aber ich verstehe nicht, warum euer Code überhaupt funktioniert. Die SQL-Anweisung gehört in Quotes.

snuu


snuu, ich will ein Kind von dir! Dangöööö! ;)


Zum Code: Aus Schusseligkeit hab ich die Quotes vergessen. Und auch net gemerkt. Im Script sind die natürlich drin. ^^
Noch gibts kein PHP-Parser von Microsoft der solche Fehler tolerieren würde! *fg*
 
Original geschrieben von snuu
Folgendes SQL-Statement ausführen:
Code:
select distinct datum from dba
und mit [phpf]mysql_num_rows[/phpf] die Anzahl der zurückgegebenen Datensätze abrufen.

Schlagt mich, aber ich verstehe nicht, warum euer Code überhaupt funktioniert. Die SQL-Anweisung gehört in Quotes.

snuu


ähm war einfach copy und paste von oben, meine SQL query´s sehen auch immer anders aus ;)
naja aber mit dem COUNT GROUP BY sollte es auch klappen und du brauchst keine rows zählen ;)

guter einfall!
 
SELECT datum, count(*) FROM dba GROUP By datum
Das kann nicht funktionieren, weil nach dem Datum gruppiert wird. Deine SQL-Anweisung gibt die Anzahl der Datensätze je Datum aus. Würde man allerdings die Anzahl der zurückgegebenen Zeilen zählen, kommt ein korrekter Wert heraus. Aber die SQL-Anweisung ansich liefert kein korrektes Ergebnis.
 
Zurück