Announcement

Collapse
No announcement yet.

Einzelnen Datensatz auslesen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Einzelnen Datensatz auslesen

    Ich habe das Problem, dass mir MS Access bei der Anweisung

    Code:
    SELECT TOP 1 * FROM Tabelle ORDER BY Datum ASC
    im Fall von mehrfach vorkommenden Daten (z.B. 18.04.2012) trotzdem mehrere Datensätze zurückgibt.

    Wie kann ich die Rückgabe auf einen einzigen Datensatz begrenzen?
    Andere SQL-Umgebungen bieten mir z.B. FETCH FIRST 1 ROWS, aber das funktioniert unter Access leider nicht.

  • #2
    Das sollte eigentlich funktionieren. Welche Access Version?
    Vielleicht hilft auch ein ordentlicher Primärschlüssel?
    Gruß, defo

    Comment


    • #3
      Ich nutze Access 2007.
      Allerdings nutze ich die Entwurfsansicht von Access auch nur, um einen SQL-Befehl, den ich später in meiner eigenen C#-Anwendung verwenden will, zu testen.
      Der Primärschlüssel ist sicherlich die korrekte Lösung, nur leider soll das mit C# entwickelte Programm fähig sein, aus einer unbekannten Datenbank, welche nicht unbedingt einen PK enthält, eine bestimmte Anzahl von Datensätzen auszulesen, die ich zuvor z.B. mit ORDER BY Datum sortiert habe.

      Ich habe einfach mal eine Beispieldatenbank angefügt.
      Darin ist eine Tabelle und eine Abfrage enthalten.
      Attached Files

      Comment


      • #4
        Hi,

        ich habe es mit access 2010 ausprobiert. Geht auch nicht. Aber folgendes funktioniert:

        SELECT TOP 1 * FROM Tabelle
        where not exists (select * from tabelle t1 where t1.datum < tabelle.datum)


        Gruß
        docendo discimus

        Comment


        • #5
          Sehr gut! Das ist die Lösung.
          Zum Verständnis: die innere SELECT-Anweisung greift durch tabelle.datum auf das Ergebnis der äußeren Top 1 Abfrage zu????

          Comment

          Working...
          X