0
두 개의 개별 열에 두 개의 개별 카운트를 제공하는 쿼리를 만들려고합니다. 응용 프로그램 수 및 승인 된 응용 프로그램 수입니다. 나는이 시간대를 매월 한시적으로 보여주고 싶다. 하위 쿼리를 사용하는 경우 하위 쿼리가있는 여러 GROUP BY
date applications approvals
January 20 3
February 25 1
March 20 4
April 10 2
, 나는 "MONTH (APPL_CREATE_DT)에 의해 GROUP"를 사용하여 메인 쿼리를 그룹화 : 그래서처럼. 그러나이 문제는 첫 번째 열을 올바르게 그룹화하는 반면 다음 열은 매월 동일한 수를 포함한다는 점입니다. 다른 하위 쿼리 섹션에 동일한 GROUP BY를 추가하면 1242 오류가 발생합니다.
이 문제를 해결하는 방법에 대한 아이디어는 도움이 될 것입니다. 나는 이와 같은 다른 질문을 보았지만 해결을 위해 다른 절에 크게 의존하지 않았습니다.
SELECT
COUNT(DISTINCT APPL_ID) AS Applications,
(SELECT COUNT(DISTINCT APPL_ID)
FROM APPL_APP
JOIN APPU_APP_USER ON APPL_ID = APPU_APPL_ID
LEFT JOIN APPD_APP_DECISION ON APPD_APPL_ID = APPL_ID
WHERE APPD_STATUS = 'LENDER_APPROVED'
AND APPU_CUR_STATE = 'TX'
AND APPL_CREATE_DT >= '2013-01-01 00:00:00'
AND APPL_CREATE_DT <= '2014-01-31 23:59:59'
GROUP BY MONTH(APPL_CREATE_DT)) AS Approvals
FROM APPU_APP_USER
JOIN APPL_APP ON APPL_ID = APPU_APPL_ID
AND APPL_CREATE_DT >= '2013-01-01 00:00:00'
AND APPL_CREATE_DT <= '2014-01-31 23:59:59'
AND APPU_CUR_STATE = 'TX'
GROUP BY MONTH(APPL_CREATE_DT);
하위 쿼리에서 MONTH()가 외부 쿼리의 MONTH()와 일치하는 행, 즉 그룹화하려는 행만 선택하십시오. –
여전히 같은 오류가 발생합니다. MONTH (outerTable.APPL_CREATE_DATE) = MONTH (inner_table.APPL_CREATE_DATE)와 같은 일을 보았지만 제대로 작동하도록 배치 할 위치를 알지 못합니다. – user2356890
이러한 질문을하는 좋은 방법은 SqlFiddle을 만들어 사람들이 변경할 수 있도록하는 것입니다. 이 예제를 확인하십시오. http://sqlfiddle.com/#!9/1e85d/5 또한 count (*)로 쿼리의 프레임을 다시 구성 할 수 있다면 다르게 접근 할 수는 있지만 그 값은 App, AppUser 및 AppDecision 간의 관계. –