sql 分类统计

dabao0303106 2008-04-01 11:14:47
表a(salary,salary_type)进行分类统计,字段salary_type含有四种类型A,B,C,D
我要显示的结果是:
A 5
B 10
C 0
D 0

而我现在的实现的结果是:
A 5
B 10

我是按某一条件计数的.
请各位帮帮忙!谢谢!
...全文
158 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hebo2005 2008-04-01
  • 打赏
  • 举报
回复
总算看懂了,你是要显示的结果为
A 5
B 10
C 0
D 0
没有数据就为0吧
这样好了

select aa.salary,nvl(bb.salary_type,0) salary_type
from
(select 'A' salary from dual
union all
select 'B' salary from dual
union all
select 'c' salary from dual
union all
select 'd' salary from dual
) aa,
(select a.salary,sum(a.salary_type)) salary_type
from a
group by a.salary)
bb
where aa.salary=bb.salary(+)


这样出来是固定四条纪录


hebo2005 2008-04-01
  • 打赏
  • 举报
回复
没看懂你要什么,你现在的结果直接这样不就行了
select salary,salary_type
from a
where salary_type>0
guo0399 2008-04-01
  • 打赏
  • 举报
回复
salary_type如果有存在一张表tab的话,直接将你的
而我现在的实现的结果是:
A 5
B 10
的语句再加一个union tab就可以实现了,主要是在你的a表里面没有c、d的记录,所以统计出来没有。
或者你可以用tab再左连接你的目前的语句也可以
阿三 2008-04-01
  • 打赏
  • 举报
回复
啥意思没明白
dabao0303106 2008-04-01
  • 打赏
  • 举报
回复
2楼是对的,union tab可以解决,谢谢各位!

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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