Cof*_*fee 63 reporting-services ssrs-2008
我收到了以下错误,现在让我感到SSRS困惑的是:
An error occurred while the query design method was being saved.
An item with the same key has already been added
Run Code Online (Sandbox Code Playgroud)
但是"项目"表示什么?我甚至尝试编辑RDL并删除对我需要使用的存储过程的所有引用调用prc_RPT_Select_BI_Completes_Data_View.
这可能与存储过程使用动态SQL(N' 符号)的事实有关吗?
通过mornin,在存储过程中我有:
SET @SQL + = N'选择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'''
Run Code Online (Sandbox Code Playgroud)

Cof*_*fee 121
似乎SSRS存在问题(至少在2008版本中) - 我正在研究这个解释它的网站
如果你有两个具有相同名称的列(来自2个差异表),那么它将导致该问题.
来自:
SELECT a.Field1,a.Field2,a.Field3,b.Field1,b.field99 FROM TableA a.Field1 = b.Field1上的JOIN TableB b
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 报告中创建问题:
从 PersonalDetails P Left Join CommunicationDetails D On P.ID = D.PersonalDetailsID 中选择 P.ID、P.FirstName、P.LastName、D.ID、D.City、D.Area、D.Address
原因:ID 提到了两次(多次)
正确查询:
选择 P.ID 作为 PersonalDetailsID、P.FirstName、P.LastName、D.ID、D.City、D.Area、D.Address 从 PersonalDetails P Left Join CommunicationDetails D On P.ID = D.PersonalDetailsID
小智 5
我在报告查询中遇到了同样的错误。我有来自不同表的具有相同名称的列和每个表的前缀(例如:select a.description、b.description、c.description)在 Oracle 中运行正常,但是对于报告,您必须为每个表指定一个唯一的别名列,因此只需为具有相同名称的字段添加别名(选择 a.description a_description、b.description b_description 等)