SSRS에서 새 보고서를 사용했을 때 "같은 키가있는 항목이 이미 추가되었습니다"라는 오류가 발생하는 이유는 무엇입니까?
에서 다음과 같은 오류가 발생 SSRS
하고 지금 당황 스럽습니다.
An error occurred while the query design method was being saved.
An item with the same key has already been added
"항목"은 무엇을 의미합니까? 필자 RDL
는 기억하는 저장 프로 시저에 대한 모든 참조를 편집 하고 삭제 하려고 시도했습니다 prc_RPT_Select_BI_Completes_Data_View
.
저장 프로 시저가 동적 SQL ( N'
표기법)을 사용한다는 사실과 관련이있을 수 있습니까?
오전까지 저장 프로 시저에 다음이 있습니다.
SET @SQL + = N 'SELECT bi.SupplierID를' '공급자 ID' '로, bi.SupplierName을' '공급자 이름' '으로
,bi.PID as ''PID''
,bi.RespondentID as ''Respondent ID''
,lk_slt.Name as ''Entry Link Type''
,ts.SurveyNumber as ''Initial Survey ID'''
SSRS에 문제가있는 것입니다 (적어도 2008 년 버전에서는)- 이 웹 사이트에서이를 설명하고 있습니다.
동일한 이름을 가진 두 개의 열 (2 개의 diff. 테이블에서)이있는 경우 해당 문제가 발생합니다.
출처 :
SELECT a.Field1, a.Field2, a.Field3, b.Field1, b.field99 FROM TableA a JOIN TableB b on a.Field1 = b.Field1
SQL은 별명 (테이블) 이름을 접두사로 붙 였기 때문에 잘 처리했습니다. 그러나 SSRS는 테이블 + 열이 아닌 열 이름 만 키로 사용하여 질식했습니다.
수정은 쉬웠습니다. 두 번째 열인 iebField1 AS Field01의 이름을 바꾸거나 필드를 함께 생략합니다.
나는 과거 에이 문제를 경험했습니다. 바탕으로 데이터 세트에 동일한 필드 소스를 여러 필드 이름이있는 경우 일반적 으로이 문제가 발생합니다 말할 수 있습니다. 자세한 오류 설명은 다음 게시물을 참조하십시오.
http://www.bi-rootdata.com/2012/09/an-error-occurred-during-report.html
http://www.bi-rootdata.com/2012/09/an-item-with-same-key-has-already-been.html
고유의 경우 Sp prc_RPT_Select_BI_Completes_Data_View에서 반환 한 모든 필드 이름을 확인하고 모든 필드에 한 이름이 있는지 확인해야합니다.
나는 같은 문제에 직면 해있다. 디버그 후 나는 동일하게 수정했습니다. SQL 쿼리의 열 이름이 여러 번 있으면 문제가 발생합니다. SQL 쿼리를 사용하여 열 이름을 사용합니다. 예 : 아래 쿼리는 SQL 쿼리가 제대로 작동하지만 SSRS 보고서는 문제가 발생합니다.
P.ID, P.FirstName, P.LastName, D.ID, D.City, D.Area, D.Address를 PersonalDetails에서 선택 P Left Join CommunicationDetails D On P.ID = D.PersonalDetailsID
이유 : 아이디가 두번 참조 됨 (재생 번)
올바른 쿼리 :
P.ID를 PersonalDetailsID, P.FirstName, P.LastName, D.ID, D.City, D.Area, D.Address From PersonalDetails로 선택합니다. P Left Join CommunicationDetails D On P.ID = D.PersonalDetailsID
보고서 쿼리에서 동일한 오류가 발생했습니다. Oracle에서 곧 실행되는 각 테이블에 대해 동일한 이름과 접두사 (예 : select a.description, b.description, c.description)를 가진 서로 다른 테이블의 열이 고유 한 보고서의 경우 각각에 대해 설명합니다. . 열과 동일한 이름의 필드에 사용할 추가하기 만하면됩니다 (a.description a_description, b.description b_description 등 선택).
방금이 오류가 발생하여 로컬 변수에 관한 것임을 알게되었습니다.
저장 프로 시저의 끝에서 내가 좋아했던
select @localvariable1,@localvariable2
그것은 SQL에서 잘 작동했지만 ssrs에서 경고 실행했을 때 항상 오류가 발생했지만 준 후에 수정되었습니다.
select @localvariable1 as A,@localvariable2 as B
죄송합니다. 이전에 대한 응답이지만 여전히 유용합니다.
위의 응답은 일반적으로 동일한 쿼리에 다른 테이블의 동일한 이름을 가진 두 개의 열이 포함되어있을 때 발생합니다. 예를 들어 우리가 city.name 및 state.name과 같이 테이블에 열 이름이있는 city 및 state 두 테이블을 결합하는 경우. 하지만 결국 쿼리가 데이터 세트에 추가되면 ssrs는 테이블 이름 또는 테이블 이름을 제거하고 이름 만 유지하지만 결국 쿼리에 두 번 나타나고 오류는 연속 키로 나타납니다. 피하는 가장 좋은 방법은 열 이름 city.name을 c_name state.name으로 s_name으로 호출하는 것과 같은 것을 사용하는 것입니다. 이렇게하면 문제가 해결됩니다.
'ProgramingTip' 카테고리의 다른 글
Excel에서 1 시간 추가 (0) | 2020.11.30 |
---|---|
EPPlus 사용시 Column Type 설정 방법 (0) | 2020.11.30 |
x $ ed의 R 오류 : $ 연산자가 원자 벡터에 유효하지 않습니다. (0) | 2020.11.30 |
C ++로 파일 만들기 (0) | 2020.11.30 |
Java captcha 라이브러리에 대한 권장 사항 (0) | 2020.11.30 |