В 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'
Выберите bi.SupplierID как "идентификатор поставщика"
,висмут.SupplierName как "имя поставщика"



        ,bi.PID as ''PID''
,bi.RespondentID as ''Respondent ID''

,lk_slt.Name as ''Entry Link Type''

,ts.SurveyNumber as ''Initial Survey ID'''


enter image description here

1258   5  

5 ответов:

похоже, что SSRS имеет проблему(по крайней мере, в версии 2008) - я изучаю этот веб-сайт, который объясняет это

где он говорит, Если у вас есть два столбца(от 2 diff. таблицы) с тем же именем, то это вызовет эту проблему.

из источника:

выбрать.Поле1, а.Поле2, а.Поле3, б.Поле1, б.field99 из tablea в Присоединяйтесь к таблице tableb B на.Поле1 = б.Поле1

SQL справился с этим просто отлично, так как я префикс каждого с псевдонимом (имя таблицы. Но SSRS использует только имя столбца в качестве ключа, а не таблицы + колонка, так она задыхалась.

исправление было легко, либо переименовать второй столбец, т. е. b. Field1 как 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:

выбрать П. код, имя П. П. фамилия, ИД Д., Д. город, район, Д., Д. адрес От PersonalDetails P Левое соединение CommunicationDetails D на п. ИД = Д. PersonalDetailsID

причина: ID упомянул дважды (несколько раз)

Правильный Запрос:

выбрать П. ID, как PersonalDetailsID, П. Имя, Фамилия П., Д. ИД, Д. город,, д. Площадь, д. адрес От PersonalDetails P Левое соединение CommunicationDetails D на п. ИД = Д. PersonalDetailsID

Я только что получил эту ошибку, и я узнал, что речь идет о локальной переменной alias

в конце хранимой процедуры, у меня был как

select @localvariable1,@localvariable2

он работал нормально в sql, но когда я запустил это в ssrs он всегда бросал ошибку, но после того, как я дал псевдоним, он исправлен

select @localvariable1 as A,@localvariable2 as B

У меня была такая же ошибка в запросе отчета. Я имел столбцы из разных таблиц с одинаковым именем и приставкой для каждой таблицы (например: выберите.описание, б.описание, С. описание), который работает нормально в Oracle, но для отчета необходимо иметь уникальный псевдоним для каждого столбца так просто добавить алиас для поля с одинаковыми именами (выберите.описание a_description, б.b_description описание и т. д.)

Comments

    Ничего не найдено.