SELECT cast((SELECT COUNT(*)
          FROM outage
          WHERE (starttime BETWEEN '2003-7-20' AND '2003-7-27') AND place = '北京') 
      /
          (SELECT COUNT(*)+0.0
         FROM outage
         WHERE (place LIKE '北京')) as numeric(10,2)) AS Expr1

解决方案 »

  1.   

    o, i see
    thank you so much
      

  2.   

    两个整数相除,结果自然是整数.用数据类型转换,将整数转换成实数就行了.
    SELECT cast((SELECT COUNT(*)
              FROM outage
              WHERE (starttime BETWEEN '2003-7-20' AND '2003-7-27') AND place = '北京') as decimal(20,2))
          /
              (SELECT COUNT(*)
             FROM outage
             WHERE (place LIKE '北京')) AS Expr1
      

  3.   

    Select 5/10     -- 0
    Select 5.0/10   -- 0.5