我有一个名为table1的表,它有以下列。
假设有像localamount这样的记录是20,000,300,500,50000,那么根据我的条件我必须根据网站ID的集合从这个表中删除记录,直到id,transid,shift id localamount超过10,000 ...其他记录可以使用吗?
我的目的是根据网站ID从本表中删除本地金额超过10,0000的行,直到id,transid,shift id
SiteId varchar(10),
TillId tinyint,
ShiftId int,
TransId int,
TranDate datetime,
SettlementType varchar(5),
CreditCardNumber varchar(25),
ProductTypeCode varchar(10),
NewProductTypeCode varchar(10),
TransactionType int,
ForeignAmount money,
LocalAmount money,
ProductCode varchar(10)
答案 0 :(得分:1)
我不确定我明白你在说什么,但如果没有一个小组,你不能这样做吗?
delete from table1 where LocalAmount > 10,0000[sic] and SiteId = whatever and TillId = whatever...
显然需要[原文如此] ......
答案 1 :(得分:0)
假设您要删除总和为>的整个组。 10000
;with cte as
(
select sum(localamount) over
(partition by siteid, tillid, transid,shiftid) as l,
* from table1
)
delete from cte where l>10000