sql语句中聚合函数使用的问题

xcf123 2012-05-01 05:22:17
诸位:
我用以下语句,搜寻“余额”>0的数据老出错,帮帮忙呗。问题出在where子句上,不用where子句通过。
select sum(金额) as 余额 from bzj where 余额> 0
...全文
179 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluepigya 2012-05-03
  • 打赏
  • 举报
回复
select sum(金额) as 余额 from bzj where 金额> 0

这样查询效率会高点,结果跟他们上面的一样
li998 2012-05-02
  • 打赏
  • 举报
回复
where 金额>0
Oraclers 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
分组应该这样:

select id,sum(金额) as 余额 from bzj group by id having sum(金额)>0
[/Quote]
这个对了,聚合函数要用having子句。
kaikai_kk 2012-05-02
  • 打赏
  • 举报
回复
分组应该这样:

select id,sum(金额) as 余额 from bzj group by id having sum(金额)>0
kaikai_kk 2012-05-02
  • 打赏
  • 举报
回复
哦,是我rp有问题,没看清楚,不好意思哈 :(

这句查询结果,只有一笔数据,如果结果>0,本身就是这笔数据,若<0,就没结果了,如下面:

select * from (select sum(金额) as 余额 from bzj) as t where 余额>0

所以再过滤就没有意义了,直接在前台使用就行了
kaikai_kk 2012-05-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
where sum(金额)> 0 没通过
[/Quote]

按你给出的语句,这句没通过只能说是rp问题,除非你的语句不是这样的...
xcf123 2012-05-02
  • 打赏
  • 举报
回复
where 金额>0 尽管能通过,可是没意义,我求的是每一组小计大于零的小组,而不是每一个记录。但还是谢谢诸位的关心
xcf123 2012-05-01
  • 打赏
  • 举报
回复
where sum(金额)> 0 没通过
superlixiao78 2012-05-01
  • 打赏
  • 举报
回复
同上。
kaikai_kk 2012-05-01
  • 打赏
  • 举报
回复
where sum(金额)> 0

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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