Neuestes Datum finden
-
Hallo,
ich bin erlich gesagt ein ziemlicher Anfänger in SQL.
Ich hab folgendes Problem mit Access:
Meine Datenbank besteht aus Kundennummer (mehrmals die gleichen), einem bestellten Artikel und dem Bestelldatum.
So, jetzt will ich mit einer SQL-Abfrage von jeder Kundennummer die neueste Bestellung rausfinden.Könnt ihr mir sagen wie ich das mach?
Brauch bis morgen ein Ergebnis, bitte helft mir.
-
Aus
// id name datum // 0 eduard 23.03.2005 <-- // 1 yvonne 23.03.2005 <-- // 2 martin 24.03.2005 // 1 yvonne 20.03.2005 // 2 martin 25.03.2005 <-- // 3 gregor 20.02.2005 <-- // 3 gregor 19.02.2005
wird
// id name bestell_datum // 0 eduard 23.03.2005 // 1 yvonne 23.03.2005 // 2 martin 25.03.2005 // 3 gregor 20.02.2005
Die dazugehörige SQL - Anweisung:
SELECT id, name, MAX(datum) AS bestell_datum FROM test WHERE id IN(SELECT id FROM test GROUP BY id) GROUP BY id,name
Ich bin jetzt zu müde um dir die SQL - Anweisung zu erklären. Ich versuch's morgen (heute :p ) nochmals. Schaut etwas komisch aus, aber mir ist nichts besseres eingefallen
-
zu besoffen.
-
verstehe
Also erstmal Danke, hat mir schon sehr geholfen.
Jetzt wirds allerdings ein bisschen schwieriger.
Also so sehen die Tabellen aus:Tabelle KundenDaten:
//id Name (Anschrift etc....) NeuesteBestellung AbstandDerLetztenBestellungen //1 Gregor .......... (leer) (leer) //2 Martin .......... //3 Anna ..........
Tabelle KundenBestellungen:
//id Bestelldatum //1 01.01.2004 //1 02.01.2004 //1 03.01.2004 //2 01.02.2004 //2 05.02.2004 //2 06.02.2004 //3 01.03.2004 //3 21.03.2004 //3 07.03.2004 //3 08.03.2004
So, und nun soll in die Tabelle KundenDaten
1. Das Datum der neuesten Bestellung des Kunden -> in Spalte NeuesteBestellung
2. Der Abstand in Tagen von seiner neuesten Bestellung zur vorherigen Bestellung
(also beim Kunden 1 1 Tag, ein sehr guter kunde ) ->In Spalte AbstandDerLetztenBestellungen
-
ich bin erlich gesagt ein ziemlicher Anfänger in SQL.
Uff Du hast dir nicht gerade die leichtesten Aufgaben ausgesucht.
Das Datum der neuesten Bestellung des Kunden -> in Spalte NeuesteBestellung
INSERT INTO usw.
Der Abstand in Tagen von seiner neuesten Bestellung zur vorherigen Bestellung
Ich habe nicht die Geduld dir auch noch diese Aufgabe zu lösen.
Es gibt einige Zeitfunktionen, die auch Access kennt: DateAdd(), DateDiff(), .. schau dich einfach mal danach um.Viel Erfolg
-
Du kannst hier aus beidem einen
UNIX_TIMESTAMP machen.UNIX_TIMESTAMP(datum1)- UNIX_TIMESTAMP(datum2) AS sekunden
Zieht vom ersten Datum das 2te ab und gibt dir diue sekunden zurück
Mit SEC_TO_TIME oder ähnlichem kannst du diese sekunden wieder verarbeiten. Geht alles mit SQL.
www.mysql.de liefert dir INfos zu den funktionen.