2017-10-02 1 views
0

Ich arbeite an einer Abfrage, die ein Datum aus einer anderen Abfrage zieht, habe ich meine Gründe für die Verschachtelung. Das Problem, mit dem ich konfrontiert bin, ist, dass es ein Feld namens DueDate gibt.Zugriff Abfrage Ausdruck gibt falsche

My SQL ist

SELECT DueDate 
FROM qryDueDates 
WHERE DueDates <= DateAdd("d",60,Date()) 

Die Daten, die das Problem verursacht ist, wenn es so etwas wie "2019.01.25" gleich "2019.11.19" oder ein Datum in 2019

Ziel

Ich muss die Ergebnisse einschränken, um Daten anzuzeigen, die innerhalb von 60 Tagen oder weniger abgelaufen sind oder ablaufen.

Results

Ich versuche, den Datensatz für die bedingte Formatierung vorzubereiten.

Report

+0

Wenn ich nicht ein bisschen düster bin, ist 1/25/2019 mehr als 60 Tage weg also würde nicht auftauchen? Wie ist 19.11.2019? In der Tat zum Zeitpunkt des Schreibens 3-Okt-2017 jedes Datum auch im Jahr 2018 wäre mehr als 60 Tage entfernt? – Minty

+0

@Minty Das ist mein Punkt. Es sollte nicht auftauchen, aber sie tun es. – MatthewEnderle

+0

Gerade bemerkt, dass du duedate wählst und die where-Klausel sich auf duedates bezieht (extra S am Ende)? Auch - Seit Ihrer Bearbeitung - ich bemerke, dass Sie einen Feldwert von "ausgeschlossen" haben, ist dies in einem Datumsfeld nicht möglich, daher vergleichen Sie keine Daten mit Datumsangaben, Sie vergleichen Text. Also ich denke @Rai ist auf dem richtigen Weg. Ist dies in SQL oder Access? – Minty

Antwort

0

Stellt sich heraus, dass die ursprüngliche Abfrage es vermasselte. Ich habe die Abfrage in die Hauptansicht verschoben und es hat funktioniert.

0

, wenn Sie Ihre verschachtelte Unterabfrage in Ihrem Beitrag setzen können, die eine bessere Bild geben können, und wenn Sie erwähnen, was der Fehler ist, die Sie bekommen, dass kann auch helfen. Da Sie erwähnt haben, dass Sie nur Fehler erhalten, wenn die Unterabfrage bestimmte Daten zurückgibt, würde ich vorschlagen, dass Sie das Ergebnis Ihrer Unterabfrage auf DATE umstellen, wenn Sie dies noch nicht getan haben.

Unten ist mein Versuch, Ihnen mit begrenzten Informationen zu helfen, die ich aus Ihrem Beitrag extrahieren konnte. Ich habe unten einige MS-SQL-Funktionen verwendet, bitte ersetzen Sie sie durch Ihre DB-spezifische Funktion.

SELECT myDates.* FROM (select COLUMN_NAME DueDates from TABLE_NAME) as myDates WHERE myDates.DueDates <= DateAdd("d",60, GETDATE())