2014-01-31 92 views
-2

我有以下用結果來計算比

SELECT 'Active Borrowers per Loan Officer' AS PERFORMANCE_RATIOS, 
    (
     SELECT count(DISTINCT L.CUSTOMER_ID)/COUNT(DISTINCT L.MIS_ACCT_OFFICER) AS RATIO 
     FROM LD_LOANS_AND_DEPOSITS L 
     WHERE REPORT_DATE = (
       SELECT MIN(REPORT_DATE) 
       FROM LD_LOANS_AND_DEPOSITS 
       ) 
     ) AS RATIO1, 
    (
     SELECT count(DISTINCT L.CUSTOMER_ID)/COUNT(DISTINCT L.MIS_ACCT_OFFICER) AS RATIO 
     FROM LD_LOANS_AND_DEPOSITS L 
     WHERE REPORT_DATE = (
       SELECT MAX(REPORT_DATE) 
       FROM LD_LOANS_AND_DEPOSITS 
       ) 
     ) AS RATIO2, 
    (
     (
      SELECT count(DISTINCT L.CUSTOMER_ID)/COUNT(DISTINCT L.MIS_ACCT_OFFICER) AS RATIO 
      FROM LD_LOANS_AND_DEPOSITS L 
      WHERE REPORT_DATE = (
        SELECT MAX(REPORT_DATE) 
        FROM LD_LOANS_AND_DEPOSITS 
        ) 
      ) - (
      SELECT count(DISTINCT L.CUSTOMER_ID)/COUNT(DISTINCT L.MIS_ACCT_OFFICER) AS RATIO 
      FROM LD_LOANS_AND_DEPOSITS L 
      WHERE REPORT_DATE = (
        SELECT MIN(REPORT_DATE) 
        FROM LD_LOANS_AND_DEPOSITS 
        ) 
      ) 
     )/(
     SELECT count(DISTINCT L.CUSTOMER_ID)/COUNT(DISTINCT L.MIS_ACCT_OFFICER) AS RATIO 
     FROM LD_LOANS_AND_DEPOSITS L 
     WHERE REPORT_DATE = (
       SELECT MIN(REPORT_DATE) 
       FROM LD_LOANS_AND_DEPOSITS 
       ) 
     ) * 100 AS CHANGE, 
    (
     SELECT MIN(REPORT_DATE) 
     FROM LD_LOANS_AND_DEPOSITS 
     ) AS REPORT_DATE1, 
    (
     SELECT MAX(REPORT_DATE) 
     FROM LD_LOANS_AND_DEPOSITS 
     ) AS REPORT_DATE2 

查詢我需要做的是使用比爲1 /比率2之外,而不必重複返回theese 2值整個SQL代碼。我該怎麼做呢?

+0

剛剛添加它,道歉 –

回答

0

這裏是你的答案

SELECT PERFORMANCE_RATIOS, RATIO1, RATIO2, RATIO1 - RATIO2 AS SUBTRACT, RATIO1 * RATIO2 AS Multiply 
FROM (
SELECT 'Active Borrowers per Loan Officer' AS PERFORMANCE_RATIOS, 
    (
     SELECT count(DISTINCT L.CUSTOMER_ID)/COUNT(DISTINCT L.MIS_ACCT_OFFICER) AS RATIO 
     FROM LD_LOANS_AND_DEPOSITS L 
     WHERE REPORT_DATE = (
       SELECT MIN(REPORT_DATE) 
       FROM LD_LOANS_AND_DEPOSITS 
       ) 
     ) AS RATIO1, 
    (
     SELECT count(DISTINCT L.CUSTOMER_ID)/COUNT(DISTINCT L.MIS_ACCT_OFFICER) AS RATIO 
     FROM LD_LOANS_AND_DEPOSITS L 
     WHERE REPORT_DATE = (
       SELECT MAX(REPORT_DATE) 
       FROM LD_LOANS_AND_DEPOSITS 
       ) 
     ) AS RATIO2 
) Table