IF NOT OBJECT_ID('[tb]') IS NULL DROP TABLE [tb] GO CREATE TABLE [tb]([药品货号] NVARCHAR(10),[药品名称] NVARCHAR(10),[库存数量] INT,[批号] NVARCHAR(10)) INSERT [tb] SELECT '000001',N'青霉素',2,'01' UNION ALL SELECT '000001',N'青霉素',3,'02' UNION ALL SELECT '000001',N'青霉素',5,'03' UNION ALL SELECT '000001',N'青霉素',4,'04' UNION ALL SELECT '000001',N'青霉素',6,'05' GO select [药品货号],[药品名称],[库存数量],[批号],identity(int,1,1) ID into # from [tb] select * from # declare @Put int set @Put=12 select [药品货号],[药品名称], case when (select sum([库存数量]) from # where [药品名称]=aa.[药品名称] and ID<=aa.ID)<@put then 0 else (select sum([库存数量]) from # where [药品名称]=aa.[药品名称] and ID<=aa.ID)-@put end as '[库存数量]' from # aa 药品货号 药品名称 [库存数量] ---------- ---------- ----------- 000001 青霉素 0 000001 青霉素 0 000001 青霉素 0 000001 青霉素 2 000001 青霉素 8