【问题标题】:An item with the same key has already been added - SQL Server 2012 Subquery Issue已添加具有相同键的项目 - SQL Server 2012 子查询问题
【发布时间】:2014-10-31 16:19:15
【问题描述】:

我正在 SQL Server 2012 中编写代码以转移到 Report Builder 3.0 的查询设计器中。

我的代码在 Management Studio 中运行良好,并且在实际查询设计器中运行,但是一旦我在查询设计器中按 Okay,它就会向我抛出错误:

"Could not update a list of fields for the query. Verify that you can connect to the data source and that your query syntax is correct"

详情下:

"An item with the same key has already been added"

这是我正在使用的代码:

Select * 
from
(Select distinct srt.Name,
    percentile_disc(.5) WITHIN GROUP(ORDER BY (sr.price)) OVER(PARTITION BY srt.Name) AS    MedianSpend
    from ServiceReq sr inner join ServiceReqTemplate srt 
    on srt.RecId = sr.SvcReqTmplLink_RecID Where Name like '%') medQuery
    inner join

(select distinct srt.Name,
    cast(sum(sr.price) as int) as AvgCost,cast(sum(sr.cost) as int) as 
    AvgTransCost,cast(avg(sr.TotalTimeSpent) as int) as TotalTimeSpent
    from ServiceReq sr, ServiceReqTemplate srt
    where sr.SvcReqTmplLink_RecID = srt.RecId
    group by srt.Name) avgQuery
    on medQuery.Name LIKE avgQuery.Name

我认为问题在于一个表中有两列都称为“名称”,这是不允许的。我在想我可以在同一个表中添加另一列,并将其命名为“Name_2”,然后将“Name”表中的所有数据复制并粘贴到“Name_2”中,然后使用它。这是成功将此代码实施到报表生成器中的最简单方法吗?

【问题讨论】:

    标签: mysql sql-server reporting-services reporting


    【解决方案1】:

    您将AS Name2 添加到第二个查询中,然后在最后的avgQuery 之后调用它。

    【讨论】:

      猜你喜欢
      • 2017-01-07
      • 1970-01-01
      • 1970-01-01
      • 2012-08-12
      • 2022-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多