2016-12-08 1 views
0

Guten Tag! Ich bin auf diesen hier gestoßen. Ich brauche die neuesten Einträge mit einem bestimmten Spaltenwert, ohne vorher zu wissen, wie viele Einträge zurückgegeben werden sollen, in einer MS Access-Datenbank.Die letzten Einträge mit dem gleichen Spaltenwert zurückgeben

Dies ist ein Beispiel der Tabelle mit arbeite ich:

ID OrderNo Time  Closed 
10 14  17:20:05 TRUE 
11 14  17:20:09 TRUE 
12 15  17:22:53 TRUE 
13 15  17:22:56 TRUE 
14 14  17:26:26 TRUE 
15 14  17:26:30 TRUE 
16 14  17:26:37 TRUE 

In diesem Beispiel würde ich eine Abfrage benötigt nur die Zeilen 14, 15 und 16. Aber es zurück könnten 3 Zeilen oder 7 Zeilen sein, die zurückgegeben werden müssten. Ich habe versucht, die Einträge mit der gleichen OrderNo mit MAX (Zeit) auszuwählen, aber da die Millisekunden unterschiedlich sind, gibt es nur den neuesten Eintrag zurück. Gibt es eine Möglichkeit, die neuesten Einträge mit der gleichen "OrderNo" zu erhalten, bis sich "OrderNo" ändert?

Tut mir leid, wenn ich mich nicht gut genug erklärt habe, Englisch ist nicht meine Muttersprache, und ich schätze jede Hilfe!

EDIT: Hier ist, was ich versucht habe:

SELECT  ID, OrderNo, Time, Closed 
FROM   Sales 
WHERE  (OrderNo = ?) AND (Closed = TRUE) AND (Time = 
          (SELECT  MAX(Time) AS Expr1 
           FROM   Sales)) 
+1

Bitte zeigen Sie, was Sie versucht haben. – Steve

+0

Bestellen Sie einfach per Zeit-DESCending und nehmen Sie dann TOP-Datensätze. – Steve

+0

Tatsache ist, ich habe keine Möglichkeit zu wissen, wie viele Datensätze ich zurückgeben muss. Ich muss alle Datensätze mit der gleichen Bestellnummer als den neuesten Eintrag bis zu einer Zeile mit einer anderen Bestellnummer zurückgeben. –

Antwort

0

Vielleicht funktioniert:

wählen Sie ID, OrderNo, Zeit, aus dem Verkauf Geschlossen Wo ID < = (select max (ID) aus dem Verkauf wo OrderNo = 14) Und ID> (wählen Sie max (ID) von Sales wo OrderNo <> 14 und ID < (wählen Sie max (ID) von Sales wo OrderNo = 14))

Verwandte Themen