2017-08-15 1 views
0

Comment puis-je diviser le résultat de query1 en query2? (. Le résultat a chiffres après la virgule) Merci:Division des requêtes dans Oracle

query1:

select count(*) as aa 
    from registered_devices 
where status = 1; 

query2:

select sum(last_count) as current_daily 
    from statistics    
where to_char(counter_date, 'YYYYMMDDHH24') between to_char (sysdate - 1, 'YYYYMMDDHH24')      
    and to_char (sysdate - 1 /24, 'YYYYMMDDHH24') 
    and counter_type = 'WS_GET_OFFER_ACCEPT' 
+1

Ne comparez pas les chaînes les unes avec les autres, faites simple 'où counter_date entre sysdate-1 et sysdate - 1/24', resp. 'où TRUNC (counter_date, 'MI') entre TRUNC (sysdate - 1, 'MI') et TRUNC (sysdate - 1/24, 'MI')' –

Répondre

0

Vous pouvez simplement faire ceci:

select (select count(*) as aa 
      from registered_devices 
     where status = 1) 
    /(select sum(last_count) as current_daily 
      from statistics    
      where to_char(counter_date, 'YYYYMMDDHH24') 
        between to_char (sysdate - 1, 'YYYYMMDDHH24')      
         and to_char (sysdate - 1 /24, 'YYYYMMDDHH24') 
       and counter_type = 'WS_GET_OFFER_ACCEPT') 
    from dual 

(ou vice vice versa si vous vouliez dire l'inverse).

Méfiez-vous de l'erreur de division par zéro!