MS 액세스 쿼리 질문.시간 내에 특정 값에서 개수가 변경됩니다.
단순화 된 버전에서는 ticketid 열, 상태 열 및 타임 스탬프 열이 포함 된 테이블이 있습니다. 타임 스탬프 열은 티켓에 (새로운) 상태가 설정된시기를 나타냅니다.
최종 목표는 특정 시간 프레임 내에서 상태 FROM 상태 18을 변경 한 티켓 수를 계산하는 것입니다. 여기에는 시간 프레임 내에 상태 18이 있고 다시 '손실'된 티켓뿐만 아니라 시간 프레임의 시작 부분에 이미 상태 18이있는 티켓도 포함됩니다.
아래의 중간 쿼리는 너무 많은 레코드를 반환하므로 분명히 정확하지 않습니다. 그것은 다음 기록 (시간)과 비교할뿐만 아니라 어떤 기록과도 비교됩니다.
SELECT *
FROM
(SELECT tkhtimestamp, tkhticketid, tkhstatusid FROM tickethistory WHERE tkhstatusid NOT IN (18) AND tkhtimestamp >= #3-jul-2014 9:00:00# AND tkhtimestamp <= #4-jul-2014 9:00:00#) AS new_status_records
INNER JOIN
(SELECT tkhtimestamp, tkhticketid, tkhstatusid FROM tickethistory WHERE tkhstatusid IN (18) AND tkhtimestamp <= #4-jul-2014 9:00:00#) AS old_status_records
ON old_status_records.tkhticketid = new_status_records.tkhticketid AND old_status_records.tkhtimestamp < new_status_records.tkhtimestamp
누구든지이 작업을 수행 할 수 없으므로 조언을받을 수 있습니까? max/min 및 group by을 사용한 다른 노력도 실패했습니다.
감사합니다.
참으로 인상적이고 잘 설명 된 답변 Gord! 고맙습니다. – David