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.


Anmelden zum Antworten