한 가지 방법은 날짜와 시간을 얻을 수 있습니다 어떤 도움이 많이 주시면 감사하겠습니다
SELECT serial AS Account,
max(READ)- min(READ) AS GalsTotal,
FROM dbo.Database
WHERE (dbf_DT > DATEADD(HH, -24, getdate()))
... 기간 내의 마지막 읽기 및 해당 기간 (또는 기간 시작 전 마지막 읽기)의 첫 번째 읽기 날짜 및 시간을 입력 한 다음이를 사용하여 행을 검색하십시오.
SELECT s.serial AS Account
, MAX(lr.READ) - MIN(fr.READ) AS GalsTotal
FROM (SELECT d.serial
, MIN(d.dbf_DT) AS first_read_dt
, MAX(d.dbf_DT) AS last_read_dt
FROM dbo.Database d
WHERE d.dbf_DT > DATEADD(HH, -24, GETDATE()
GROUP BY d.serial
) s
JOIN dbo.Database fr
ON fr.serial = s.serial
AND fr.dbf_DT = s.first_read_dt
JOIN dbo.Database lr
ON lr.serial = s.serial
AND lr.dbf_DT = s.last_read_dt
GROUP
BY s.serial
합니다 (MIN과 MAX 집계가 dbf_Dt는 해당 시리얼에 대해 고유합니다 보장이 있다면 필요하지 않습니다. (시리얼, dbf_DT)에 고유 제한 조건이있을 경우, MIN과 MAX 제거 할 수 있습니다 , 그들은 단지 일치하는 first_read_dt 또는 last_read_dt 더 이상의 행이 경우에이 차별한다.
또 다른 방법은 같은 일을 수행하기 위해 SQL 서버에서 사용할 수 분석 함수를 사용하는 것입니다.
당신은 3시 30 분에 역류 기록을 버리고 싶다고 말하고 있습니까? 실제 사용량은 9 갤런입니까? 또한 SQL Server의 버전은 무엇입니까? –