집 >데이터 베이스 >MySQL 튜토리얼 >SQL을 사용하여 Access 데이터베이스의 연속 레코드 간 날짜 차이를 계산하는 방법은 무엇입니까?
SQL을 사용하여 Access 데이터베이스의 순차 레코드 간 날짜 차이 계산
시간 데이터 분석에는 연속 항목 간의 경과 시간을 확인하는 작업이 포함되는 경우가 많습니다. 이 문서에서는 SQL을 사용하여 Access 데이터베이스 내에서 동일한 계좌 번호를 공유하는 연속 레코드 간의 날짜 차이를 계산하는 방법을 보여줍니다.
방법 1:
다음 SQL 쿼리는 계좌 번호 1001과 연결된 연속 레코드의 날짜 차이를 계산합니다.
<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>
이 접근 방식은 LEFT JOIN
을 활용하여 각 레코드의 이후 날짜를 식별한 다음 DATEDIFF
기능을 사용하여 일수 차이를 계산합니다.
방법 2:
또는 이 쿼리는 동일한 결과를 얻습니다.
<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>
이 방법은 날짜 차이를 계산하기 전에 하위 쿼리를 사용하여 각 레코드의 다음 날짜를 찾습니다.
출력 예(계좌 번호 1001):
두 쿼리 모두 비슷한 결과 집합을 생성합니다.
AccountNumber | Date | DaysDifference |
---|---|---|
1001 | 10/9/2011 | 2 |
1001 | 12/9/2011 | 8 |
1001 | 20/9/2011 | NULL |
NULL
값은 마지막 항목에 대한 후속 기록이 없음을 나타냅니다. "YourTable"
을 테이블의 실제 이름으로 바꿔야 합니다.
위 내용은 SQL을 사용하여 Access 데이터베이스의 연속 레코드 간 날짜 차이를 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!