日期:2014-05-18  浏览次数:20429 次

求一个Oracle 10g下的SQL语句,有点难度.请高手进~![同时向朋友们道歉~!]
在Oracle 10g下,求一个SQL语句,以实现如下的数据统计。如下:

表名:MC09

基本字段:  

  G-TIM:时间值字段,如”25-七月-2008 11:45:09 AM”

  W-1 :整型,如 1120

  W-2 :整型,如 1123

  C_TYPE :字符型,如 “02012300A1”

  C_REJE :字符型,如 “01”

SQL语句统计的条件如下:

  1.字段G-TIM的时间为 2008-07-20 11:30:00至2008-07-20 21:30:00

  2.W1减W2的值在[-5,5]的范围内

  3.C_TYPE字段的第二个字符等于 ‘2’

  4.C_REJE字段的值等于 ‘01’

统计目标:

  求:在符合条件1、3、4的记录中,符合条件1、2、3、4的记录所占的百分比。

-----------------------------------
最后声明,好长一段时间因转行出国培训,一直未能上来结部分贴,
特向贴中关注的朋友道歉!


------解决方案--------------------
取数据库板块吧问吧,那里高手多
------解决方案--------------------
try->
SQL code
declare
v_count1 number;--符合条件1、3、4的记录数
v_count2 number;--符合条件1、2、3、4的记录数
begin
select count(*) into :v_count1 from MC09 where G-TIM between '2008-07-20 11:30:00' and '2008-07-20 21:30:00' and (W1-W2) between -5 and 5 and substring(C_TYPE,2,1)='2' and C_REJE='01'; 

select count(*) into :v_count2 from MC09 where G-TIM between '2008-07-20 11:30:00' and '2008-07-20 21:30:00' and substring(C_TYPE,2,1)='2' and C_REJE='01'; 

select (v_count1/v_count2)*100+'%' from dual;
end;