다른 실행 프로 시저의 데이터를 사용하여 테이블을 만들고, 값을 임시 테이블에 삽입하고, 이미지 열을 추가하는 다음 실행 문이 있습니다 () 그룹화에 포함 된 다음 다른 임시 테이블에서 기준 (결과 테이블 필드는 SSRS 보고서에 사용됩니다에 기반을 업데이트, 그래서) 이미지 데이터 형식을 유지해야한다 :임시 테이블에 열이 있는지 항상 확인합니다.
EXEC ('SELECT ' + @COL_TO_GROUP_BY + @COL_ADDITONAL + @sColVals + ' INTO
#RESULTS_TABLE from (' + @SQL_STATEMENT + ') A ' + @WHERE_CLAUSE + ' GROUP BY ' +
@COL_TO_GROUP_BY +
' ALTER TABLE #RESULTS_TABLE
ADD IMAGE_DATA IMAGE
IF EXISTS(SELECT * FROM tempdb.INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME =
''COLUMN_A'' and TABLE_NAME LIKE ''#RESULTS_TABLE%'')
BEGIN
UPDATE #RESULTS_TABLE
SET IMAGE_DATA = FILE_DATA
FROM #RESULTS_TABLE A, #IMAGE_TABLE B
WHERE A.COLUMN_A = B.COLUMN_A
END
SELECT * FROM #RESULTS_TABLE')
문제를 COLUMN_A의 유무에 관계없이 IMAGE_DATA의 열은 항상 NULL입니다. IMAGE_DATA 열에 데이터를 가져 오는 다른 방법이 있습니까? 도와주세요!
참고 : 아니요,은 문제가 다른 테이블의 콘텐츠, 특히 WHERE 절과 관련되어 있다고 결론을 내리는 모든 대답을 수락 할 것입니다. 조건이 true와 false (일치하는 행, 일치하는 행 등)가 될 수 있도록 여러 유효성 검사를 수행했습니다. 그래서 이것은 조건문을 배제합니다. 감사.
는편집 :
나는 그것의 정확한 원인이 무엇인지 완전히 아직 확실하지 않다,하지만 난 전역 임시 테이블을 생성 결국 두 개의 별도의 절차를 실행, 지금은 잘 작동하는 것 같군. 나는 내 자신의 해결책과 가장 근접한 대답을 받아 들여야 만했다. 모든 답변과 의견은 매우 실용적이었습니다. 감사!
우선,'WHERE A.COLUMN_A = B.IMAGE_VALUE' 조건을 생략하려고합니다. 그것은 나를 위해 소리가납니다. 그것은'OBJ_ID'에 의해 올바른 행을 찾는데 충분합니다. –
그 점을 지적 해 주셔서 감사합니다. 내 경우에는 OBJ_ID가 중복 된 행이 있기 때문에 두 조건이 모두 필요합니다. 오리지널 코드를 간략화 했으므로 오해의 소지가 있으므로이 코드를 가져와야합니다. 나는 그 질문을 편집 할 것이다. –
이것이 도움이되는지 잘 모르겠지만, 상수이므로 group by 절에 추가하지 않고이 'cast (image as null) as IMAGE_DATA'와 같은 select 문에 이미지 열을 추가 할 수 있다고 생각합니다. 왜 열이 존재하는지 테스트해야하는 이유는 무엇입니까? –