求某一字段的总和最接近某一个给定数据的记录集,不知是否能写出这样的sql语句

icerainhxj 2007-03-01 02:00:35
各位大大好:
不知道小弟说不说的明白!
现在有一个表,里面有很多条记录,表的一个字段是表示金额的(例如叫money),现在用户需要的功能是给定一个数值,例如1000,要在表里找出字段总和(sum(money))最接近1000的那些记录,请问这个sql语句怎么写呢?
...全文
280 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiongrubin 2007-03-01
  • 打赏
  • 举报
回复
讲叙都没讲清楚。。。你到底是要有那几个字段,还是那几条记录啊。。
rookie_one 2007-03-01
  • 打赏
  • 举报
回复
我之前那个写错了,而且没考虑差值为负数的情况,用这种思路试试看:

select top 1 * from
(select col1,ABS(sum(col2)-1000) col2 from [talbename] group by col1) t
order by col2
Layto 2007-03-01
  • 打赏
  • 举报
回复
这样问,会不会好一点。
例如1000,要在表里找出字段总和(sum(money))最接近1000的(大小在-500至500之间)那些记录,请问这个sql语句怎么写呢?
select [名字],sum(money) from [表1] group by [名字] having sum(money)>=-500 and sum(money)<=500
rookie_one 2007-03-01
  • 打赏
  • 举报
回复
总之就是选出分组中,sum(money)-1000 这个差值最小的那条记录
rookie_one 2007-03-01
  • 打赏
  • 举报
回复
select col1,min(col2) col2 from
(select col1,sum(money)-1000 col2 from [table] group by col1)t
group by col1
rookie_one 2007-03-01
  • 打赏
  • 举报
回复
select col1,min(col) from
(select col1,sum(money)-1000 col2 from [table] group by col1)t
group by col1

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧