【发布时间】:2017-04-12 13:46:15
【问题描述】:
创建了以下存储过程以在 SSRS 中创建数据集。但是当我在 SSRS 中运行查询时,从字符串转换日期时出现转换失败错误。我确定这是语法或变量问题。有什么想法吗?
ALTER PROCEDURE [dbo].[usp_r_pcdh_counts]
@START datetime,
@END datetime
AS
BEGIN
SET NOCOUNT ON;
DECLARE @START1 datetime= @START
DECLARE @END1 datetime = @END
DECLARE @sql nvarchar (4000)
SET @sql= 'SELECT *
FROM OPENQUERY(MR_UNI,''select
count(case when event_audit_type_key in ("1346","1038") then 1 else null end) as outsuccessful,
count(case when event_audit_type_key = "1531" then 1 else null end) as outunsuccessful,
count( case when event_audit_type_key in ("1040") then 1 else null end) as outdocsfound,
count( case when event_audit_type_key in ("1532") then 1 else null end) as outdocsnotfound,
count( case when event_audit_type_key in ("1042") then 1 else null end) as outdocsretrieved,
count( case when event_audit_type_key in ("1580") then 1 else null end) as outdocsnotretrieved,
count( case when event_audit_type_key in ("1048") then 1 else null end) as insuccess,
count( case when event_audit_type_key in ("1048") and success_code = "12" then 1 else null end) as infailure,
count( case when event_audit_type_key in ("1050") then 1 else null end) as indocsretrieved
from public.event_audit ea
where ea.event_date >= convert(date,''''' + @START1+ ''''', 110)
and ea.event_date < convert(date, '''''+ @END1+ ''''', 110)
AND event_audit_key >= (SELECT MAX(event_audit_key) - 100
FROM reports.event_audit_index
WHERE event_date <= convert(date, '''''+ @START1+ ''''', 110))
AND event_audit_key <= (SELECT MIN(event_audit_key) + 100
FROM reports.event_audit_index
WHERE event_date >= convert(date, '''''+ @END1+''''', 110))'')'
EXEC @sql
END
【问题讨论】:
标签: sql-server dataset ssrs-2012 data-conversion openquery