SQL查询指导我

时间:2015-05-26 06:55:31

标签: sql oracle

SELECT (
    SELECT COUNT(*)
    FROM   JLOAN_HI_CSVDATA
    WHERE jloan_hi_csvdata.INSERTEDDATE  >= TO_DATE('15-02-15', 'DD/MM/YY')
      AND  jloan_hi_csvdata.INSERTEDDATE  <= TO_DATE('19-02-15', 'DD/MM/YY')
      and STATUS = 'Success'
    ) AS Success,
    (
    SELECT  COUNT(*)
    FROM    JLOAN_HI_CSVDATA
    jloan_hi_csvdata.INSERTEDDATE  >= TO_DATE('15-02-15', 'DD/MM/YY')
    AND  jloan_hi_csvdata.INSERTEDDATE  <= TO_DATE('19-02-15', 'DD/MM/YY')
    and STATUS != 'Success'
    ) AS Failure,
    (
    SELECT  COUNT(*)
    FROM    JLOAN_HI_CSVDATA
    WHERE jloan_hi_csvdata.INSERTEDDATE  >= TO_DATE('15-02-15', 'DD/MM/YY')
      AND  jloan_hi_csvdata.INSERTEDDATE  <= TO_DATE('19-02-15', 'DD/MM/YY')
    ) AS Total ;

1 个答案:

答案 0 :(得分:2)

执行一次SELECT,使用CASE进行条件计数:

SELECT COUNT(case when STATUS = 'Success' then 1 end) as Success,
       COUNT(case when STATUS <> 'Success' then 1 end) as Failure,
       COUNT(*) as Total
FROM   JLOAN_HI_CSVDATA
WHERE jloan_hi_csvdata.INSERTEDDATE  >= TO_DATE('15-02-15', 'DD/MM/YY')
 AND  jloan_hi_csvdata.INSERTEDDATE  <= TO_DATE('19-02-15', 'DD/MM/YY')