임시 테이블에 데이터를 선택한 다음 해당 테이블을 쿼리하여 보고서의 다른 값을 가져옵니다. 다음은 오류를 생성하는 코드입니다. 차이가있을 경우 임시 테이블에 약 3 천 6 백만 개의 레코드가 있습니다. 오류가 첫 번째 쿼리의 첫 번째 열에 있음을 나타냅니다.산술 오버플로 오류 식을 데이터 유형 int로 변환
SELECT SUBSCRIPTION_ALIAS,
'Count' = 0,
COUNT(SUBSCRIPTION_ALIAS) AS MonthChange
FROM #Temp1 A WHERE DATEDIFF(day,JOIN_DTM,'01/01/2012') < 31
GROUP BY SUBSCRIPTION_ALIAS
UNION
SELECT B.SUBSCRIPTION_ALIAS,
COUNT(B.SBSCRPTN_MBR_KEY) AS [Count],
'MonthChange' = 0
FROM #Temp1 B JOIN #Temp1 A ON B.SUBSCRIPTION_ALIAS = A.SUBSCRIPTION_ALIAS
GROUP BY B.SUBSCRIPTION_ALIAS
DROP TABLE #Temp1
다음은 임시 테이블에 대한 설명입니다 (추한 것입니다). 오류 메시지는이 스레드의 제목입니다.
SELECT
bi_communications.F_EML_RCPNT.SBSCRPTN_LIST_KEY,
bi_communications.F_EML_RCPNT.SBSCRPTN_MBR_KEY,
bi_communications.D_SBSCRPTN_LIST.SBSCRPTN_LIST_NM,
bi_communications.F_EML_RCPNT.DLRY_DT_KEY,
bi_communications.D_DT.DT_DT,
CASE
WHEN D_SBSCRPTN_LIST.SBSCRPTN_LIST_NM = 'active-offers' THEN 'Special Offers'
WHEN D_SBSCRPTN_LIST.SBSCRPTN_LIST_NM = 'reserveamerica-offers' THEN 'RA Special Offers'
WHEN D_SBSCRPTN_LIST.SBSCRPTN_LIST_NM in
('active-team-sports-insider','active-tennis','active-women-news', ... (omitting excess)
) THEN 'Content'
WHEN D_SBSCRPTN_LIST.SBSCRPTN_LIST_NM = 'local-events' THEN 'Local Events'
ELSE 'Blank'
END AS SUBSCRIPTION_ALIAS,
bi_communications.D_SBSCRPTN_MBR.JOIN_DTM
INTO #Temp1
FROM bi_communications.F_EML_RCPNT
JOIN
bi_communications.D_SBSCRPTN_LIST ON bi_communications.F_EML_RCPNT.SBSCRPTN_LIST_KEY = bi_communications.D_SBSCRPTN_LIST.SBSCRPTN_LIST_KEY
JOIN bi_communications.D_DT ON bi_communications.F_EML_RCPNT.DLRY_DT_KEY = bi_communications.D_DT.DT_KEY
JOIN bi_communications.D_SBSCRPTN_MBR ON bi_communications.F_EML_RCPNT.SBSCRPTN_MBR_KEY = bi_communications.D_SBSCRPTN_MBR.SBSCRPTN_MBR_KEY
WHERE
bi_communications.F_EML_RCPNT.SBSCRPTN_LIST_KEY IN
(180740437, 180741017, 180740482, 180740438, ...)
AND bi_communications.D_DT.DT_DT BETWEEN '01/01/2011 00:00:00' AND '01/01/2012 00:00:00'
'int'로 변환되는 이유는 무엇입니까? 어쩌면 오류 메시지를 포함시켜야합니다. – wallyk
@wallyk - 그게 내 오류에 대해 혼란 스럽네. 나는 그것이 무엇이 int로, 특히 그 컬럼으로 변환 될지 알 수 없다. – RageQwit
'create table # temp1'과 에러 메시지에 대한 설명을 보겠습니다. – wallyk