【发布时间】:2021-10-27 14:53:54
【问题描述】:
我正在使用 SQL Server 2000 (80)。因此,不能使用 LAG 功能。
我有一个四列数据集的代码:
Purchase_Date
Facility_no
Seller_id
Sale_id
我需要识别缺失的 Sale_ids。所以每个 sale_id 都是 100% 连续的,所以顺序上不应该有任何间隙。
此代码适用于特定日期和存储(如果指定)。但我需要处理整个数据集循环遍历每个设施 ID 和每个卖家 ID 的购买日期
declare @MAXCOUNT int
set @MAXCOUNT =
(
select MAX(Sale_Id)
from #table
where
Facility_no in (124) and
Purchase_date = '2/7/2020'
and Seller_id = 1
)
;WITH TRX_COUNT AS
(
SELECT 1 AS Number
union all
select Number + 1 from TRX_COUNT
where Number < @MAXCOUNT
)
select * from TRX_COUNT
where
Number NOT IN
(
select Sale_Id
from #table
where
Facility_no in (124)
and Purchase_Date = '2/7/2020'
and seller_id = 1
)
order by Number
OPTION (maxrecursion 0)
我的数据集
【问题讨论】:
标签: tsql select grouping window-functions row-number