【问题标题】:error- Each column has to have a unique name when you’re returning the query错误 - 当您返回查询时,每一列都必须有一个唯一的名称
【发布时间】:2015-10-11 08:40:18
【问题描述】:

我正在尝试使用以下 SQL 查询运行报告服务

select ca.callingpartynumber, ca.originalcalledpartynumber, case
when calledpartylastname is not null then ca.calledpartylastname + ',' + calledpartyfirstname 
else p1.name end,
p1.location, p1.dept, p1.title,
case
when callingpartylastname is not null then ca.callingpartylastname + ',' + callingpartyfirstname 
else p3.name end
from calldata.calldetailreport ca
join ps_bc_peoplesource_base p1 on ca.originalcalledpartynumber = replace(p1.bc_int_phone, '-', '')
left outer join ps_bc_peoplesource_base p3 on ca.callingpartynumber = replace(p1.bc_int_phone, '-', '')
where originalcalledpartynumber in (select replace(bc_int_phone, '-', '') internal_modified  from ps_bc_peoplesource_base where bc_lan_id = 'f7c')
--and datetimedisconnect between @startdate  and @enddate --1221

我收到此错误-

“已添加具有相同密钥的项目。”

【问题讨论】:

  • 这个问题是因为有 2 列与您选择的名称相同。确保更改最终名称,并且当您在 Management Studio 中运行语句时,每一列都有一个唯一的名称。如果两个不同表中的两列,并且您在 Select Clause 中添加了它们,则为每个线圈添加 ALIAS 名称
  • 您是否尝试为您的 2 个 case ... end 语句提供显式别名? case ... end as <alias name>.
  • 谢谢!但是现在我收到一条错误消息 - “文本框'finalcalledpartynumber' 的值表达式引用了字段'finalcalledpartynumber'。报告项只能引用当前数据库范围......”这是什么意思?再次感谢很多!

标签: sql sql-server visual-studio tsql reporting-services


【解决方案1】:

您的 SELECT 查询中缺少两个案例语句的列别名。由于 SSRS 只使用列名作为键,而不是表 + 列,所以它很窒息。

Refer HereHereHere also

SELECT ca.callingpartynumber, ca.originalcalledpartynumber, 
    CASE WHEN calledpartylastname IS NOT NULL  
            THEN ca.calledpartylastname + ',' + calledpartyfirstname 
         ELSE p1.name END AS calledpartylastname,
    p1.location, 
    p1.dept, 
    p1.title,
    CASE WHEN callingpartylastname IS NOT NULL 
            THEN ca.callingpartylastname + ',' + callingpartyfirstname 
        ELSE p3.name END AS callingpartylastname
    ...
    ...

【讨论】:

  • 谢谢!但是现在我收到一条错误消息 - “文本框'finalcalledpartynumber' 的值表达式引用了字段'finalcalledpartynumber'。报告项只能引用当前数据库范围......”这是什么意思?再次感谢很多!
  • 此错误是因为您指的是此“finalcalledpartynumber”,但当前范围/数据集/区域中不存在此列。该字段不在您的上述查询中,因此这意味着您还有另一个查询
猜你喜欢
  • 2013-11-08
  • 2019-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-15
  • 1970-01-01
相关资源
最近更新 更多