【发布时间】:2016-06-14 06:16:05
【问题描述】:
我以前从未见过这种情况发生,所以我很好奇是否有人知道原因,也许我可以如何纠正它。
我的代码的这个特定部分:
SELECT inv_num, co_line,
STUFF((
SELECT '/' + rs2.inv_pro_description
FROM @ReportSet rs2
WHERE rs2.inv_num = rs.inv_num AND
rs2.co_line = rs.co_line
FOR XML PATH('')), 1, 1, '') as ipd_combo
FROM @ReportSet rs
WHERE inv_pro_seq IS NOT NULL AND inv_pro_description <> 'Less Previously Invoiced'
GROUP BY inv_num, co_line
导致我的两个结果的正确串联,例如,在这种情况下,“10% Advance/Fixed $5 Required”。但是,当在 SSRS 中使用此过程时,我的字段改为“固定需要 5 美元/10% 预付款”。
我已经习惯了能够根据运行的 SQL 查询来预测我的 SSRS 报告,所以这让我很困惑。
当然,我不太了解 STUFF / XML PATH 代码。我已经从其他人那里复制了它(自然是在这个网站上),所以我知道这可能与它有关。
【问题讨论】:
-
我很偶然地发现,如果我将上面代码中的 '/' 替换为 ' / ',它就会正常工作。 (SQL SMS 不变)。原始代码有一个“,”,这产生了与“/”相同的问题。那么...添加这些空格的方法使 SSRS 开始工作?
-
...现在它不工作了...再次。代码与之前没有什么不同,数据相同,等等。
-
尝试添加一些
order by条件? -
...现在它正在工作...再次。而现在,不是。我所做的只是尝试在 SQL SMS 中运行查询的不同顺序并从报告中提取数据。这似乎是随机的,但我知道这是不可能的。
-
您能否运行 SQL Profiler 跟踪并确认在运行 SSRS 报告时将哪些 SQL 发送到服务器?然后将其与您的 SSMS 查询进行比较?
标签: sql-server tsql reporting-services ssrs-2008-r2