求第三个SQL语句
一个表结构如下:
name jg zl
米 200 买
衣 300 买
裤 100 买
米 150 卖
裤 50 卖
米 200 买
...
要求查询结果如下:
米 250
裤 50
即按name分类,和zl的进出,合计现在还有多少数量并且数量要小于280
谢谢大家!
问题点数:60、回复次数:6Top
1 楼rlqiang((不留)戒烟买房中。。。)回复于 2005-10-24 11:22:15 得分 2
用case sum 两个函数,应该就可以搞定啊Top
2 楼jinjazz(近身剪)回复于 2005-10-24 11:26:17 得分 38
select * from
(select name,sum((case when zl='买' then 1 else -1 end)*jg) as jg from 表 group by name )a
where (jg<280)Top
3 楼rlqiang((不留)戒烟买房中。。。)回复于 2005-10-24 11:28:39 得分 2
看来还需要游标啊。Top
4 楼lovendII(流氓都做了城管)回复于 2005-10-24 11:28:59 得分 18
select name,sum(case when zl='买' then jg when zl='卖' then -jg else 0 end) as jg
from table group by name having jg<280
Top
5 楼jinjazz(近身剪)回复于 2005-10-24 11:33:39 得分 0
to 楼上的,直接having是不可以的
select name,sum((case when zl='买' then 1 else -1 end)*jg) as jg from 表 group by name
having sum((case when zl='买' then 1 else -1 end)*jg)<280
这样还不如字表Top
6 楼lovendII(流氓都做了城管)回复于 2005-10-24 11:42:25 得分 0
对对对,是这样的。我粗心了,没测试。Top




