收到错误“具有相同的键SSRS项目已被添加”在SQL Server 2014
问题描述:
希望有人比我聪明能帮助我在这里...收到错误“具有相同的键SSRS项目已被添加”在SQL Server 2014
我收到错误SSRS项目使用相同的密钥具有已经添加了下面的SQL我已经尝试罚款什么是代码的问题,但一直没能找到它。
有人可以帮助我了:)
SELECT
Name.ID, Name.COMPANY, Name.CATEGORY,
HOUSEPOP.HH_INV AS 'Current Year HH_INV',
HOUSEPOP_1.HH_INV AS 'Last Year HH_INV',
name.MEMBER_TYPE, name.CATEGORY,
HOUSEPOP.TOTAL_POP,
(HOUSEPOP.HH_INV - HOUSEPOP_1.HH_INV) AS 'Difference',
((HOUSEPOP.HH_INV - HOUSEPOP_1.HH_INV)/HOUSEPOP_1.HH_INV) AS '% Change'
FROM
Name
INNER JOIN
HOUSEPOP ON Name.ID = HOUSEPOP.ID
INNER JOIN
HOUSEPOP AS HOUSEPOP_1 ON Name.ID = HOUSEPOP_1.ID
WHERE
HOUSEPOP.BILL_YEAR = @Bill_Year
AND HOUSEPOP_1.BILL_YEAR = @Bill_Year -1
ORDER BY
ID
答
你有两个字段称为“A类” - 一个“公司”后一个“MEMBER_TYPE”之后。 SSRS将只允许唯一的列名称。
答
您有2个CATEGORY列。 SQL Server/SSMS将允许查询中的重复列,但SSRS不能有重复项。你需要别名。
SELECT
Name.ID,
Name.COMPANY,
Name.CATEGORY, --CATEGORY column 1 here
HOUSEPOP.HH_INV AS 'Current Year HH_INV',
HOUSEPOP_1.HH_INV AS 'Last Year HH_INV',
name.MEMBER_TYPE,
name.CATEGORY AS 'CATEGORY2', --I aliased your 2nd CATEGORY column here
HOUSEPOP.TOTAL_POP,
(HOUSEPOP.HH_INV - HOUSEPOP_1.HH_INV) as 'Difference',
((HOUSEPOP.HH_INV - HOUSEPOP_1.HH_INV)/HOUSEPOP_1.HH_INV) as '% Change'
FROM Name
INNER JOIN HOUSEPOP
ON Name.ID = HOUSEPOP.ID
INNER JOIN HOUSEPOP AS HOUSEPOP_1
ON Name.ID = HOUSEPOP_1.ID
WHERE HOUSEPOP.BILL_YEAR = @Bill_Year
AND HOUSEPOP_1.BILL_YEAR = @Bill_Year -1
ORDER BY ID
我也花了一些时间来格式化您的查询,以便它是可读的。这将帮助你调试(至少帮助我)。
编辑:现在我再次查看您的查询,CATEGORY看起来是重复的,所以答案可能只是删除第二个,而不是别名。
可能重复[在SSRS中,为什么我得到错误“项目使用相同的键已被添加”,当我正在做一个新的报告?](https://stackoverflow.com/questions/14466874/在-SSRS-为什么-DO-I-GET-的误差项与 - 相同的琴键具有-已经被添加-WH) – ViKiNG