2014-01-31 90 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