[解决办法] select top 1 user,总和 from(select user,sum(account) as 总和 from tb_account group by user) where 总和>500 order by 总和 desc [解决办法] 按你说的006是第一个
任何小于500都不满足,
所以就是查第一个大于500的咯? [解决办法] 500哪里来的 [解决办法] select user sum(account) from 表 group by user having sum(account)>500 [解决办法] select top 1 * from T where [user] = (select [user] from T group by [user] having SUM(account)>500)
[解决办法]
[解决办法] select top 1 user from 表 where accout>500 [解决办法] - -!围观学习 [解决办法]
SQL code
DECLARE @TB TABLE([USER] NVARCHAR(10),ACCOUNT DECIMAL(18,2))INSERT INTO @TBSELECT '001',100.00 UNION ALLSELECT '002',34.00 UNION ALLSELECT '003',89.00 UNION ALLSELECT '005',130.00 UNION ALLSELECT '006',634.00 UNION ALLSELECT '007',689.00SELECT *,RCOUNT=(SELECT SUM(ACCOUNT) FROM @TB WHERE [USER]<=T.[USER]) FROM @TB T/*USER ACCOUNT RCOUNT001 100.00 100.00002 34.00 134.00003 89.00 223.00005 130.00 353.00006 634.00 987.00007 689.00 1676.00*/--取大于500的第一条即可SELECT TOP 1 * FROM (SELECT *,RCOUNT=(SELECT SUM(ACCOUNT) FROM @TB WHERE [USER]<=T.[USER]) FROM @TB T) B WHERE RCOUNT>500/*USER ACCOUNT RCOUNT006 634.00 987.00*/ [解决办法]
[解决办法]
[解决办法] SELECT top 1 t2.[user] FROM [tb_account] as t1 , [tb_account] as t2 where t1.[user]<=t2.[User] group by t2.[User] having sum(t1.[account]) >500 [解决办法] 找出满足条件 account 【总和大于等于500】(sum(account) >= 500 )的第一个user。
你这个描述,应该就是寻找某个user的销售额超过500的结果集的第一条记录
难道不是吗
[解决办法] select ROW_NUMBER() OVER (ORDER BY userASC)AS ROWID,user,account into #temp from tb_account a
select user from #temp a where (select sum(account ) from #temp where ROWID<a.ROWID)<500 and (select COsum(account ) from #temp where ROWID<a.ROWID+1)>500 [解决办法]
[解决办法] 看看热闹 [解决办法]
[解决办法] 这表设计的绝对很有内涵 [解决办法] select user from tb_account group by user having sum(account)>500 order by asc where rowid<=1 [解决办法] 用窗口函数,很容易解决这个问题。 [解决办法] 高手如云啊 [解决办法] Oracle中可以这样: select b.* from (select t.user,t.account, (select sum(a.account) from tb_account a where a.user<=t.user) accountsum from tb_account t) b where b.accountsum>=500; [解决办法] 很强啊,楼上正解。。 [解决办法] 楼上正解,很强大啊。。。 [解决办法] 本人测试了很久,终于有了结果。 下面是我的测试过程。 你可以从上到下copy 我的SQL 语句运行算结果。希望对你有所帮助。最后一条SQL 实现了!!!
第一步:
SQL code
select row_Number()over(order by Users asc) as row, Users,Account from Tb_account [解决办法] 补: 如果看不明, 你copy 第二步的SQL 一运行 ,大概就知道怎么回事了!