使用具有两个数据库的存储过程为 rdlc 报表 VS2015 创建数据集



我想在VS 2015中向我的rdlc报表添加新的数据集,因此我使用存储过程创建了一个新的数据源。那里是:

CREATE PROCEDURE [dbo].[getAccidents]
(@p_anneeDebut date, @p_anneeFin date)
AS
SELECT * 
FROM T_ACCIDENT
LEFT OUTER JOIN TJ_ACC_PAR ON TJ_ACC_PAR.ACC_id = T_ACCIDENT.ACC_id AND TJ_ACC_PAR.ACC_type = T_ACCIDENT.ACC_type AND TJ_ACC_PAR.ACC_annee = T_ACCIDENT.ACC_annee
LEFT OUTER JOIN TR_PARTIE_CORPS ON TJ_ACC_PAR.PAR_id = TR_PARTIE_CORPS.PAR_id
LEFT OUTER JOIN TR_BLESSURE ON TJ_ACC_PAR.BLE_id = TR_BLESSURE.BLE_id
LEFT OUTER JOIN ERP.dbo.TR_COST_CENTER ON TR_COST_CENTER.COS_id = T_ACCIDENT.ACC_lieuPrecis
WHERE ACC_date <= @p_anneeFin AND ACC_date >= @p_anneeDebut

但是当我添加这个新数据源时,它不会出现在"数据源"列表中,因此我无法为我的报表选择它。(数据源创建良好(。

我用其他存储过程测试了它,它可以工作,问题是这一行(因为没有这一行它也可以工作(:

LEFT OUTER JOIN ERP.dbo.TR_COST_CENTER ON TR_COST_CENTER.COS_id = T_ACCIDENT.ACC_lieuPrecis

因为这行调用另一个数据库,但查询在 SQL 服务器中有效。 我怎样才能解决我的问题?

您是否尝试过从 Sql 服务器运行存储的 proc,也许是两个数据库之间的排序规则不同,也就是说,如果连接是在字符串值上。如果要在 SSRS 中调用存储的进程,最好的故障排除是首先在 SSMS 中获取结果,如果出现错误,可以轻松进行故障排除。另外,请尝试在联接上使用别名。

最新更新