주어진 달에 특정 트랜잭션 ID가있는 계정 수를 계산하는 SQL 스크립트가 있습니다. 나는 이것을 수정하여 주어진 달에뿐만 아니라 지난 3 개월 동안 각 유형의 트랜잭션을 배치 한 경우 accts 수를 계산합니다. 일회성 이벤트를 걸러내는 것입니다.SQL : 지난 3 개월 동안 특정 거래 ID가있는 계정 계산
나는 SQL을 처음 접했고 내가 만든 검색을 통해 확실한 대답을 찾을 수 없었습니다. 어떤 도움을 주시면 감사하겠습니다. 감사!
SELECT
CLDR.YEAR_MONTH
,COUNT(DISTINCT TRAN.ACCT_NBR) AS IC_DD --counts all unique Acct numbers
FROM
REPORTS.FINANCIAL_TRAN AS TRAN
INNER JOIN REPORTS.ACCT AS ACCT ON TRAN.ACCT_NBR=ACCT.ACCT_NBR
INNER JOIN REPORTS.DATE AS CLDR ON TRAN.TRAN_DT=CLDR.CALENDAR_DATE
WHERE
TRAN.TRAN_CD IN ('id1','id2','id3') --Filters on Transaction IDs
AND
TRAN.TRAN_DT BETWEEN '2017-01-01' AND '2017-03-31'
GROUP BY
CLDR.YEAR_MONTH
ORDER BY
CLDR.YEAR_MONTH
그건 속임수 였어. 나는 데이터 추출에서 달력 결과를 보여줄 수있는 방법을 찾아 낼 것이다. 감사! – starfly
@starfly : 어떤 캘린더 결과, 'DATE'2017-01-01''? 당신은 하드 코딩 된 날짜 범위가 있고 매월 행이있는 고객 수를 계산하려고합니다. – dnoeth
YYYYMM 형식의 날짜 열을 갖고 싶습니다. (이것이 내가 CLDR에 가입 한 이유입니다) 그리고 주어진 달 , TRAN_DT에 대한 지난 3 개월을 가져옵니다. 따라서 CLDR 월이 201703 일 경우 TRAN_DT 2017-01-01 - 2017-03-31; CLDR 월이 201702 인 경우 TRAN_DT 2016-12-01 - 2017-02-28을 가져옵니다. 그렇게하는 간단한 방법이 있습니까? – starfly