ProgramingTip

SSRS에서 새 보고서를 사용했을 때 "같은 키가있는 항목이 이미 추가되었습니다"라는 오류가 발생하는 이유는 무엇입니까?

bestdevel 2020. 11. 30. 19:25
반응형

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으로 호출하는 것과 같은 것을 사용하는 것입니다. 이렇게하면 문제가 해결됩니다.

참고 URL : https://stackoverflow.com/questions/14466874/in-ssrs-why-do-i-get-the-error-item-with-same-key-has-already-been-added-wh

반응형