测试语句:</p>
create table #t
(
isid int primary key identity(1,1),
amount decimal(18,2)
)
go
insert into #t values(23.43)
insert into #t values(213.43)
insert into #t values(523.3)
insert into #t values(23.4)
insert into #t values(263.23)
insert into #t values(223.43)
drop table #t
如何通过 isid 获得小于一个值(例如 500)的“总和”?有一个说法
select * from #t as a where exists(select 1 from #t where isid<=a.isid having sum(amount)<500)
但它有一个错误。当第一个值大于 500 且第二个值为负数时。
前任:
insert into #t values(503.43)
insert into #t values(-13.43)
结果将只有一个值(-13.43)。