Oracle中的SQL查询语句:根据同一张表中的某一字段的不同条件分别求另一字段的和。

表内容:id部门分值正负1a1Y2b2N3c5Y4a4N5a3Y6b6N7c3Y想实现的查询结果部门正分负分a44b8c8求教各位SQL/plus查询语句,谢谢了先!根据... 表内容:
id 部门 分值 正负
1 a 1 Y
2 b 2 N
3 c 5 Y
4 a 4 N
5 a 3 Y
6 b 6 N
7 c 3 Y

想实现的查询结果
部门 正分 负分
a 4 4
b 8
c 8

求教各位SQL/plus查询语句,谢谢了先!
根据表中,按部门group by 分别求同一部门“正负”字段等于“Y”和等于“N”的分值和。
展开
 我来答
badkano
2013-04-11 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144777 获赞数:885364
团长

向TA提问 私信TA
展开全部
select 部门,sum(decode(正负,'Y',分值,0)) 正分,sum(decode(正负,'N',分值,0)) 负分
group by 部门
unitech2010
2013-04-11 · TA获得超过1062个赞
知道小有建树答主
回答量:1025
采纳率:100%
帮助的人:902万
展开全部
create table #a (id int,bm char(10),fz int,zf char(10))
insert #a select 1,'a',1,'y'
insert #a select 2,'b',2,'n'
insert #a select 3,'c',5,'y'
insert #a select 4,'a',4,'n'
insert #a select 5,'a',3,'y'
insert #a select 6,'b',6,'n'
insert #a select 7,'c',3,'y'

declare @sql varchar(800)
set @sql='select bm'
select @sql =@sql+', sum(case zf when '''+zf+''' then fz else 0 end )['+zf+']'
from (select distinct zf from #A ) as a
set @sql=@sql+'from #a group by bm'
exec(@sql)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式