2017-05-18 2 views
0

Ich muss ein wenig SQL zu meinem Code hinzufügen, aber nicht ganz sicher, wo Sie es hinzufügen.Filter nach Datumsbereichen in SQL

Aktuelle Code:

Me.List5.RowSource = "SELECT TOP " & Nz(Me.Text9.Value, 0) & " RTI.CRN, 
           Sum(RTI.Credit) AS Credit, 
           Count(RTI.CRN) AS [Count] 
         FROM RTI 
         GROUP BY RTI.CRN 
         ORDER BY Sum(RTI.Credit) DESC;" 

Ich brauche einen Teil hinzuzufügen zwischen Terminen zu suchen, die in Textfeldern sind. Ich denke, ich brauche folgenden Code:

AND [StatusDateTime] >= [Text1] AND <= [Text2] 

Ist mein Datumscode richtig? und wo würde ich es zu meinem ursprünglichen SQL hinzufügen?

Dank

+0

SQL 'WHERE' Klausel Syntax sein sollte:' UND [StatusDateTime]> = [Text1] und [StatusDateTime] <= [Text2] ' . Ich würde in Betracht ziehen, [DateDiff] (https://www.techonthenet.com/access/functions/date/datediff.php) zu verwenden, um zu bestimmen, welches Datum früher ist. – marlan

Antwort

2

Diese Bedingung, die sich ergebende Satz filtern würde, so seinen Platz in einer WHERE Klausel ist, Ort, dessen ist direkt nach dem FROM.

Sie diese Bedingung schreiben kann entweder auf diese Weise

[StatusDateTime] >= [Text1] AND [StatusDateTime] <= [Text2] 

oder diese (kompakteren) Art und Weise

[StatusDateTime] between [Text1] and [Text2] 

Die resultierende Abfrage dann

Me.List5.RowSource = "SELECT TOP " & Nz(Me.Text9.Value, 0) & " RTI.CRN, 
          Sum(RTI.Credit) AS Credit, 
          Count(RTI.CRN) AS [Count] 
         FROM RTI 
         WHERE [StatusDateTime] between [Text1] and [Text2] 
         GROUP BY RTI.CRN 
         ORDER BY Sum(RTI.Credit) DESC;" 
+0

Das hat perfekt funktioniert - Danke – dmorgan20

+0

Ich entschied mich, mit [StatusDateTime] zwischen [Text1] und [Text2] zu gehen. Mir wurde vorher gesagt, dass die Verwendung zwischen nicht genau ist, verglichen mit der Verwendung von> = und <=. Ich nehme an, das ist nicht der Fall? – dmorgan20

+0

Ich habe noch nie gehört, dass 'zwischen' nicht korrekt ist, ich bin mir ziemlich sicher, dass das dbms es in '> =' und '<=' übersetzt, es ist nur [syntaktischer Zucker] (https://en.wikipedia.org/wiki) /Syntethischer Zucker). –

0

1) würden Sie sollten fügen Sie es nach "FROM RTI" hinzu

2) Es sollte sein wie

AND [StatusDateTime] >= [Text1] AND [StatusDateTime] <= [Text2] 

Oder

AND [StatusDateTime] BETWEEN [Text1] AND [Text2]