有两张表(需求表、测试用例表)
需求表:
pk_demand 需求Id
d_name 需求名称测试用例表:
pk_tcase --用例id
pk_demand --需求Id
name --测试用例名称
state --状态 0 自由态 1 已通过 2 未通过 3 待处理一个需求对应多个用例,查询按需求分组。显示字段如下:需求名称 测试用例名称 用例总数目 已通过数目 未通过数目 完成率(完成率=已通过总数目/用例总数)
需求表:
pk_demand 需求Id
d_name 需求名称测试用例表:
pk_tcase --用例id
pk_demand --需求Id
name --测试用例名称
state --状态 0 自由态 1 已通过 2 未通过 3 待处理一个需求对应多个用例,查询按需求分组。显示字段如下:需求名称 测试用例名称 用例总数目 已通过数目 未通过数目 完成率(完成率=已通过总数目/用例总数)
解决方案 »
- java 远程连接Oracle 必须装客户端吗?
- 有谁 如何控制oracle的客户端访问的ip和对应的软件,变通实现方法也可以,谢谢
- 急请帮忙改个Sql!!!!!
- 访问另一台服务器出现的问题.
- oracle/all_homes/ido中NLS_LANG的值为NA,请问这个NA是代表什么
- 求救!为什么我装的ORACLE没有监听器?
- 购买Oracel要注意那些?
- 一个sql遇到的挠头问题!!!!!!!!急!!!!
- 每隔三秒自动扫描数据库,把某一字段为0的数据select出来,怎么实现,linux下,java开发
- 关于取最新一次收费记录和倒数第二次收费记录?
- 求oracle最新版和最新教程
- ORACLE或者hibernate高手快来哦。。。。
t2.name "测试用例名称",
t2.total "用例总数目",
t2.done "已通过数目",
t2.todo "未通过数目",
DECODE (t2.total, 0, 0, TRUNC (t2.done * 100 / t2.total, 2))
"完成率(%)"
FROM demand_table t1, ( SELECT pk_tcase,
pk_demand,
name,
COUNT (pk_tcase) total,
COUNT (DECODE (state, 1, 1, NULL)) done,
COUNT (DECODE (state, 2, 1, NULL)) todo
FROM testing_table
GROUP BY pk_tcase, pk_demand, name) t2
WHERE t1.pk_demand = t2.pk_demand
(
pk_demand NUMBER(4),
d_name VARCHAR2(20)
);
INSERT INTO Require VALUES(1, '登录模块');
INSERT INTO Require VALUES(2, '注册模块');CREATE TABLE TestCase
(
pk_tcase NUMBER(4),
pk_demand NUMBER(4),
NAME VARCHAR2(20),
state NUMBER(4)
);
INSERT INTO TestCase VALUES(1, 1, '密码验证', 0);
INSERT INTO TestCase VALUES(2, 1, '文本框验证', 1);
INSERT INTO TestCase VALUES(3, 1, '用户名验证', 2);
INSERT INTO TestCase VALUES(4, 1, '防注入验证', 3);
INSERT INTO TestCase VALUES(5, 2, '用户名', 0);
INSERT INTO TestCase VALUES(6, 2, '密码', 1);
INSERT INTO TestCase VALUES(7, 2, '确认密码', 1);
INSERT INTO TestCase VALUES(8, 2, '验证码', 2);
实测结果:
(
pk_demand varchar2(10),
d_name varchar2(10)
); insert into tbxq values ('1','a');
insert into tbxq values ('2','b');
insert into tbxq values ('3','c');
insert into tbxq values ('4','d');
commit;create table tbTest
(
pk_tcase varchar2(10),
pk_demand varchar2(10),
sname varchar2(30),
state number(1)
);insert into tbTest values ('1','1','test1',1);
insert into tbTest values ('2','2','test2',2);
insert into tbTest values ('3','3','test3',3);
insert into tbTest values ('4','4','test4',0);
insert into tbTest values ('5','3','test3',2);
insert into tbTest values ('6','2','test2',3);insert into tbTest values ('7','1','test1',0);
insert into tbTest values ('8','2','test2',1);
insert into tbTest values ('9','3','test3',2);
insert into tbTest values ('10','4','test4',0);
insert into tbTest values ('11','3','test3',1);
insert into tbTest values ('12','2','test2',2);
commit;
--查询结果
select a.d_name as 需求名称,b.sname as 测试用例名称,count(*) as 用例总数目,
sum(decode(b.state,1,1,0)) as 已通过数目,
sum(decode(b.state,2,1,0)) as 未通过数目,
sum(decode(b.state,1,1,0))/count(*) as 完成率
from tbxq a,tbTest b where
a.pk_demand = b.pk_demand
group by a.d_name,b.sname;
2 c test3 4 1 2 0.25
3 d test4 2 0 0 0
4 a test1 2 1 0 0.5