求oracle一个sql写法

solidvacuum 2012-02-21 09:27:56

如上图,每个事业部下面分为几类问题,每类问题下面对应几种系统,要统计每个责任人的在每个事业部下面的解决个数。
最终想形成这样的结果,请如何写:

责任人 事业部 问题类别 对应系统
施俊发 乘用车3 系统问题3 DMS3
施俊发 多功能车2 新需求2 合格证1
施俊发 多功能车2 新需求2 其他1


大概就是这样的要求,或许类似的检索结果,谢谢
...全文
115 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
我心飞翔 2012-02-21
  • 打赏
  • 举报
回复
实测数据:

CREATE TABLE T130
(
创建时间 DATE,
提出人 VARCHAR2(20),
事业部 VARCHAR2(20),
问题类别 VARCHAR2(20),
对应系统 VARCHAR2(20),
解决时间 DATE,
责任人 VARCHAR2(20)
);

INSERT INTO T130 VALUES(to_date('2011-03-15', 'YYYY-MM-DD'), '王之梅', '多功能车', '新需求', '其它', to_date('2011-03-29', 'YYYY-MM-DD'), '施俊发');
INSERT INTO T130 VALUES(to_date('2011-03-31', 'YYYY-MM-DD'), '姚平', '乘用车', '系统问题', 'DMS', to_date('2011-03-31', 'YYYY-MM-DD'), '施俊发');
INSERT INTO T130 VALUES(to_date('2011-03-29', 'YYYY-MM-DD'), '姚平', '乘用车', '系统问题', 'DMS', to_date('2011-03-29', 'YYYY-MM-DD'), '施俊发');
INSERT INTO T130 VALUES(to_date('2011-03-21', 'YYYY-MM-DD'), '姚平', '乘用车', '系统问题', 'DMS', to_date('2011-03-29', 'YYYY-MM-DD'), '施俊发');
INSERT INTO T130 VALUES(to_date('2011-03-18', 'YYYY-MM-DD'), '王之梅', '多功能车', '新需求', '合格证', to_date('2011-03-29', 'YYYY-MM-DD'), '施俊发');

CREATE VIEW ViewT130 AS
(SELECT 事业部 AS NAME, COUNT(1) AS cn FROM T130 GROUP BY 事业部
UNION
SELECT 问题类别 AS NAME, COUNT(1) AS cn FROM T130 GROUP BY 问题类别
UNION
SELECT 对应系统 AS NAME, COUNT(1) AS cn FROM T130 GROUP BY 对应系统
);


实测结果:
solidvacuum 2012-02-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 minitoy 的回复:]
动车????
[/Quote]

不是动车,我们造不出那么奢华的动车
minitoy 2012-02-21
  • 打赏
  • 举报
回复
动车????
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bin3509 的回复:]

select t.责任人,sum(t.事业部),sum(t.问题类别),sum(t.对应系统
) from tablename t where t.dyxt='DMS'
UNION ALL
select t.责任人,sum(t.事业部),sum(t.问题类别),sum(t.对应系统
) from tablename t where t.dyxt='合格证'
UNION ALL
s……
[/Quote]


这个应该是count(t.事业部),count(t.问题类别),count(t.对应系统)吧?
BlueskyWide 2012-02-21
  • 打赏
  • 举报
回复
--或者:
select 责任人,事业部,count(*) from Your_table group by 责任人,事业部;

ICE-word 2012-02-21
  • 打赏
  • 举报
回复
select t.责任人,sum(t.事业部),sum(t.问题类别),sum(t.对应系统
) from tablename t where t.dyxt='DMS'
UNION ALL
select t.责任人,sum(t.事业部),sum(t.问题类别),sum(t.对应系统
) from tablename t where t.dyxt='合格证'
UNION ALL
select t.责任人,sum(t.事业部),sum(t.问题类别),sum(t.对应系统
) from tablename t where t.dyxt='其他'
BlueskyWide 2012-02-21
  • 打赏
  • 举报
回复
select 责任人,事业部, 问题类别,对应系统 from Your_table order by 责任人;

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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