Solaris Geschrieben 29. Februar 2012 Teilen Geschrieben 29. Februar 2012 Hallo, ich habe zur Zeit irgendwie eine Denkblockade und hoffe jemand kann mir helfen. Ich muss gerade eine SQL-Abfrage bauen, in der ich aus einer Vielzahl von Kundeneinträgen den neuesten Eintrag ermittlen muss. In der Tabelle sind jedoch verschiedene Einträge zum gleichen Kunden als auch zu anderen Kunden enthalten. Bsp.: Kundennummer...Artikel...........Kaufdatum AA...................Dose.............01.01.2012 AA...................Bratpfanne.....02.01.2012 AA...................Bratpfanne.....03.01.2012 BB...................Apfel.............01.01.2012 BB...................Birne.............05.01.2012 BB...................Trauben.........03.01.2012 CC...................Kühlschrank....06.01.2012 Die erwartete Ergebnismenge wäre: Kundennummer...Artikel...........Kaufdatum AA...................Bratpfanne.....03.01.2012 BB...................Birne.............05.01.2012 CC...................Kühlschrank....06.01.2012 Habt ihr eine Idee wie ich das bewerkstellige? Ich schaffe es nicht nur einzelne Einträge zu erhalten sondern bekomme immer 1+x Ich muss im übrigen SQL für Oracle DB nutzen. Grüße, Solaris Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
socket Geschrieben 29. Februar 2012 Teilen Geschrieben 29. Februar 2012 (bearbeitet) Hi, ich würd mit einer Unterabfrage das höchste Datum raussuchen. Habs nicht getestet. Du musst noch Tabelle mit deinem Tabellennamen ersetzen. Select kundennummer, Artikel, Kaufdatum From Tabelle A Where A.Kaufdatum = ( Select max(B.datum) From Tabelle B Where A.kundennummer = B.Kundenummer) Bearbeitet 29. Februar 2012 von socket Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MartinSt Geschrieben 29. Februar 2012 Teilen Geschrieben 29. Februar 2012 Hallo, wenn dein Kaufdatum wirklich nur ein Datum ohne Zeitstempel ist, dann kann deine erwartete Ergebnismenge so nicht sein, denn dann ist der Artikel des neuesten Eintrags nicht eindeutig bestimmbar. Das passiert genau dann wenn ein Kunde an einem Tag mehrere Artikel kauft. Wenn du auf den Artikel verzichten kannst, dann gehts mit "select max(Kaufdatum) from table group by kundennummer;". Gruß Martin Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.