Heim >Datenbank >MySQL-Tutorial >Wie berechnet man Datumsunterschiede zwischen aufeinanderfolgenden Datensätzen in einer Access-Datenbank mithilfe von SQL?
Berechnung von Datumsunterschieden zwischen aufeinanderfolgenden Datensätzen in Access-Datenbanken mithilfe von SQL
Bei der Analyse zeitlicher Daten geht es oft darum, die Zeit zu bestimmen, die zwischen aufeinanderfolgenden Einträgen vergeht. In diesem Artikel wird gezeigt, wie Datumsunterschiede zwischen aufeinanderfolgenden Datensätzen mit derselben Kontonummer in einer Access-Datenbank mithilfe von SQL berechnet werden.
Methode 1:
Die folgende SQL-Abfrage berechnet die Datumsdifferenz für aufeinanderfolgende Datensätze, die der Kontonummer 1001 zugeordnet sind:
<code class="language-sql">SELECT T1.ID, T1.AccountNumber, T1.Date, MIN(T2.Date) AS NextDate, DATEDIFF("D", T1.Date, MIN(T2.Date)) AS DaysDifference FROM YourTable AS T1 LEFT JOIN YourTable AS T2 ON T1.AccountNumber = T2.AccountNumber AND T2.Date > T1.Date GROUP BY T1.ID, T1.AccountNumber, T1.Date;</code>
Dieser Ansatz verwendet ein LEFT JOIN
, um das Folgedatum für jeden Datensatz zu identifizieren, und verwendet dann die Funktion DATEDIFF
, um die Differenz in Tagen zu berechnen.
Methode 2:
Alternativ erzielt diese Abfrage das gleiche Ergebnis:
<code class="language-sql">SELECT ID, AccountNumber, Date, NextDate, DATEDIFF("D", Date, NextDate) AS DaysDifference FROM ( SELECT ID, AccountNumber, Date, ( SELECT MIN(Date) FROM YourTable AS T2 WHERE T2.AccountNumber = T1.AccountNumber AND T2.Date > T1.Date ) AS NextDate FROM YourTable AS T1 ) AS T;</code>
Diese Methode verwendet eine Unterabfrage, um das nächste Datum für jeden Datensatz zu finden, bevor die Datumsdifferenz berechnet wird.
Beispielausgabe (Kontonummer 1001):
Beide Abfragen erzeugen eine ähnliche Ergebnismenge:
AccountNumber | Date | DaysDifference |
---|---|---|
1001 | 10/9/2011 | 2 |
1001 | 12/9/2011 | 8 |
1001 | 20/9/2011 | NULL |
Der Wert NULL
gibt an, dass für den letzten Eintrag kein Folgedatensatz vorhanden ist. Denken Sie daran, "YourTable"
durch den tatsächlichen Namen Ihrer Tabelle zu ersetzen.
Das obige ist der detaillierte Inhalt vonWie berechnet man Datumsunterschiede zwischen aufeinanderfolgenden Datensätzen in einer Access-Datenbank mithilfe von SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!