2012-12-05 5 views
1

모든 레코드를 제공하는 쿼리가 있습니다. 지금은 모든 기록에서 그것을 확인하려면 얼마나 많은 기록을 내가 25 모든 레코드에서 특정 레코드 집합을 선택하는 방법

  • 25

  • 위 500000 사이
  • 50과 이러한 세 가지 조건

    1. 이하와 동일 사이에 놓여 총 6 개의 열이 있습니다. Credit Dist dt - App Received dt 열을 뺀 결과 LO Issued - appr_dec을 뺀 값이 working days1이되어 working days2이됩니다. 어떤 레코드가 어떤 조건에 놓여 있는지 결정한 후에, 나는이 조건들 각각에서 모든 어플리케이션의 수를 취하여 working day1working day2으로 어플리케이션 수를 나눠야합니다. 어떤 애플리케이션이 어떤 조건에 놓여 있는지를 판단하고 더 진행하려면 어떻게해야합니까?

      쿼리가 매우 길어서 더미 쿼리를 넣어서 아이디어를 얻으려고합니다. 조건에 대한

      select LOSA_APP.app_ref_no AS "App.Ref.No.", 
           LOSA_EXP_SUMM_Z.group_exp AS "Group Exposure Amount", 
           column AS "App Received dt", 
           column AS "Credit Dist dt", 
           column AS "appr_dec", 
           column AS "LO Issued" 
      from 
          losa_app LOSA_APP 
      INNER JOIN 
          code_branch CODE_BRANCH 
      ON 
          LOSA_APP.attend_branch = CODE_BRANCH.branch_id 
      .... -- more joins 
      where 
          LOSA_APP.app_status in ('A','R') 
      and 
          ..... --other conditions 
      

      난, LOSA_EXP_SUMM_Z.group_exp <= 250,000 같은 LOSA_EXP_SUMM_Z.group_exp, LOSA_EXP_SUMM_Z.group_exp between 250,000 and 500,000에 대해 확인 LOSA_EXP_SUMM_Z.group_exp >= 500,000

      감사

      해야
  • +0

    당신은 SUM을 사용할 수 있습니다 (SAL에 의해 DEPTNO 주문 BY (파티션) SCOTT.EMP 에서 RNK OVER 선택 EMPNO, DEPTNO, 샐 , RANK()() 사례 COL에서 <= 250000, 1 else 0 end) 이렇게 계속할 수 있습니다. –

    답변

    0
    당신은 아마 열/상태, 예를 들면하여 출력을 분할 할 필요가

    그룹 1 - 250,000 이하, 그룹 2 ..., 그룹 3 ... 그런 다음 그룹 내에서 주문할 수 있습니다. RANK 및 기타 분석 함수를 사용해보십시오.

    선택 * /

    +0

    네, 3 가지 조건으로 출력을 분할해야합니다. 왜냐하면 모두 3 개가 필요하기 때문입니다. 어떤 조건이 참이 될 경우 나머지는 건너 뛰기 때문에'case '를 사용할 수 없습니다. 나는 하나의 조건을 만나야하고 그 다음에는 계산을해야한다. – Basit

    관련 문제