Seite 1 von 1

Nur daten eines bestimmten monats über Datenbankabfrage

Verfasst: 17.01.2005 22:27
von tschekowski
Hi,

hab ne kurze frage: in meiner datenbank werden alle zeile mit einem datum versehen das im Format dd.mm.yyyy vorliegt. jetzt möchte ich alle daten des aktuellen (letzten) monats und des aktuellen (letzten) jahres ausgeben. Wie müsste eine solche abfrage aussehen ?

Verfasst: 17.01.2005 23:20
von PhilippK
Werden die als Textfeld gespeichert? Dann solltest du es mal mit

Code: Alles auswählen

WHERE feld LIKE '__.01.2003'
probieren. Siehe auch http://dev.mysql.com/doc/mysql/en/Strin ... tions.html

Gruß, Philipp

Verfasst: 17.01.2005 23:24
von Pyramide

Code: Alles auswählen

SELECT ... FROM ... WHERE month(datumsfeld) = month(now()) AND year(datumsfeld) = year(now())
für den Aktuellen und

Code: Alles auswählen

SELECT ... FROM ... WHERE month(datumsfeld) = month(now() - INTERVAL 1 MONTH) AND year(datumsfeld) = year(now() - INTERVAL 1 MONTH)
für den vorigen Monat

Verfasst: 18.01.2005 16:48
von tschekowski
jap das funktioniert einwandfrei - danke!

noch was anderes: meine abfrage lautet wie folgt:

Code: Alles auswählen

$result2=mysql_query("SELECT SUM(Menge_1*Preis_1) AND Rechnungsdatum  FROM Bestellungsdaten ORDER BY SUM(Menge_1*Preis_1) DESC LIMIT 7");
d.h. ich will hingehen und die ausgabe nach der vorher errechneten summe sortieren - wie geht das ? (diese abfrage funktioniert nämlich nicht)

Verfasst: 18.01.2005 17:00
von Dennis63

Code: Alles auswählen

SELECT SUM(Menge_1*Preis_1) AS summe,
Rechnungsdatum
FROM Bestellungsdaten
ORDER BY summe DESC
LIMIT 7
So soll.te es gehen..

Grüße
Dennis

Verfasst: 18.01.2005 17:23
von tschekowski
alles in allem gehts - jetzt bräuchte ich nur noch das rechnungsdatum (mit dem gehts irgendwie nicht) - denn das brauche ich bei der ausgabe.....

Verfasst: 18.01.2005 17:24
von Pyramide
tschekowski hat geschrieben:mit dem gehts irgendwie nicht
irgendwie?

Verfasst: 18.01.2005 17:37
von tschekowski
immer wenn das Rechnunsdatum in der Abfrage drin vorkam hat es nicht funktioniert....ist aber auch egal weil die abfrage gibt doch nich das aus was ich mir erhofft hatte

ich habe das rechnungsdatum und die summe dieser zeile - jetzt soll die datenbank alle summen (der zeilen) des gleichen datums zusammenzählen und die 7 höchsten "Tagessummen" ausgeben - wie könnte eine solche Abfrage aussehen ?

Verfasst: 18.01.2005 19:15
von Blutgerinsel
tschekowski hat geschrieben:ich habe das rechnungsdatum und die summe dieser zeile - jetzt soll die datenbank alle summen (der zeilen) des gleichen datums zusammenzählen und die 7 höchsten "Tagessummen" ausgeben - wie könnte eine solche Abfrage aussehen ?
Wie wärs mit Hausaufgaben machen.....

indem du dir
group by
having
data_sub + Interval

anschaust......

BTW: AS Klauseln weglassen damit es ANSI SQL konform ist. Schließlich hat nicht jeder explizit eine Mysql DB bei Intranet z.B. etc.

Verfasst: 20.01.2005 16:51
von tschekowski
wenn ich also group by Rechnungsdatum machen werden alle Werte von SUM(Menge_1*Preis_1) AS summe eines Rechnungsdatums zusammenaddiert ?