我正在try 创建一个帐户独有的序列号,并在无活动一小时后重置.下面我有生成示例数据和所需输出的代码.我try 过执行lag、lead、row_number、将日期和时间列组合到datetime字段中以在这些函数中使用,但我还没有让它发挥作用.
我正在使用SQL Server 2016
DROP TABLE IF EXISTS #TempFuelPurchase;
CREATE TABLE #TempFuelPurchase (
Account_Number INT,
FuelPurchase_Date DATE,
Fuel_TOD TIME
);
INSERT INTO #TempFuelPurchase (Account_Number, FuelPurchase_Date, Fuel_TOD)
VALUES
(19, '2024-04-03', '07:02:02 AM'),
(19, '2024-04-03', '07:02:41 AM'),
(19, '2024-04-03', '02:58:49 PM'),
(19, '2024-04-03', '07:58:49 PM'),
(19, '2024-04-05', '02:58:49 PM'),
(19, '2024-04-05', '02:59:31 PM'),
(19, '2024-04-17', '11:56:13 PM'),
(20, '2024-04-17', '11:59:13 PM'),
(19, '2024-04-18', '12:15:13 AM'),
(19, '2024-04-18', '02:56:13 PM'),
(20, '2024-04-18', '07:41:55 AM'),
(20, '2024-04-18', '07:41:55 PM'),
(20, '2024-04-18', '07:56:55 PM'),
(19, '2024-04-19', '07:41:55 AM'),
(19, '2024-04-19', '07:42:20 AM');
DROP TABLE IF EXISTS #DesiredOutput;
CREATE TABLE #DesiredOutput (
Account_Number INT,
FuelPurchase_Date DATE,
Fuel_TOD TIME,
Seq Int
);
INSERT INTO #DesiredOutput (Account_Number, FuelPurchase_Date, Fuel_TOD, Seq)
VALUES
(19, '2024-04-03', '07:02:02 AM',1),
(19, '2024-04-03', '07:02:41 AM',2),
(19, '2024-04-03', '02:58:49 PM',1),
(19, '2024-04-03', '07:58:49 PM',1),
(19, '2024-04-05', '02:58:49 PM',1),
(19, '2024-04-05', '02:59:31 PM',2),
(19, '2024-04-17', '11:56:13 PM',1),
(20, '2024-04-17', '11:59:13 PM',1),
(19, '2024-04-18', '12:15:13 AM',2),
(19, '2024-04-18', '02:56:13 PM',1),
(20, '2024-04-18', '07:41:55 AM',1),
(20, '2024-04-18', '07:41:55 PM',1),
(20, '2024-04-18', '07:56:55 PM',2),
(19, '2024-04-19', '07:41:55 AM',1),
(19, '2024-04-19', '07:42:20 AM',2);