Im Moment habe ich ein Formular, das eine Abfrage abfragt, um sie zu sortieren. Ich weiß, dass es möglich ist, nach mehr als einem Kriterium zu sortieren, aber wenn ich versuche, der Abfrage die Kriterien zweiter Ordnung hinzuzufügen, scheint es nichts zu tun.Derzeit verwenden Sie eine Abfrage, um eine andere Abfrage zu bestellen. Können diese kombiniert werden?
Dies ist die Random LP Picker Abfrage. Es gibt mir eine zufällige Auswahl von 10 LPs aus einer Liste von Hunderten:
SELECT TOP 10 Artists.OriginalName, LPs.Album, LPs.rating, LPs.[Notable
Songs], LPs.Comments, [Listened (LPs)].last_date, [Listened
(LPs)].times_listened, LPs.LPID
FROM (LPs INNER JOIN Artists ON LPs.Performer_id = Artists.ArtistID) INNER
JOIN [Listened (LPs)] ON LPs.LPID = [Listened (LPs)].disc_id
WHERE (((LPs.Status)=1 Or (LPs.Status)=5) AND ((LPs.[Media Type])=1))
ORDER BY Rnd(Int(Now()*[LPID])-Now()*[LPID]);
In meiner Form bestelle ich die Abfrage nach dem Datum wie folgt aus:
SELECT [Random LP Picker].*
FROM [Random LP Picker]
ORDER BY [Random LP Picker].last_date;
Ich habe versucht, beide Sorten in zufälliger Reihenfolge LP setzen Picker Abfrage, so sieht es so aus:
ORDER BY Rnd(Int(Now()*[LPID])-Now()*[LPID]), [Listened (LPs)].last_date;
Doing, dass gibt mir nicht die Liste sortiert nach last_date. Ich habe auch versucht, diese zwei Sortierelemente umzukehren, aber das führt dazu, dass einige Felder aus Gründen, die mein begrenztes Wissen übersteigen, gar nicht erscheinen.
Es wäre nützlich, wenn ich das alles in einer einzigen Abfrage tun könnte. Ist es möglich?
HINWEIS: Ein paar Leute gesagt haben, warum nicht nur nach Datum geordnet. Die Sache ist, was diese Abfrage macht, ist das zufällige Ordnen aller Einträge und dann das Zurückgeben der ersten 10. Wenn ich also die Reihenfolge durch den Rnd (...) Teil entferne, bekomme ich keine 10 zufälligen Einträge mehr. Wenn es eine andere Möglichkeit gibt, 10 zufällige Einträge zu erhalten, ohne ORDER zu verwenden, würde ich das gerne tun, aber dies ist die einzige Möglichkeit, die ich kenne.
Ich bin nicht sicher ms Zugriff aber im allgemeinen SQL Befehle in der Reihenfolge der Prädikate wie definiert das heißt von links nach rechts. auch in anderen rdbms Angines können Sie ASC oder DESC, z. ORDER BY DATE1 ASC, DATUM2 DESC. –
Alles, was Sie wollen, damit das Endergebnis nach 'last_date' sortiert wird, also warum nicht nur ORDER BY nur auf' [Listened (LPs)]. Last_date' in Ihrer Anfrage? – MKR
Wenn ich nur nach last_date bestelle, wie bekomme ich dann 10 zufällige Einträge? Gibt es einen anderen Weg als das, was ich tue? –