Работа в Visual Studio 2010. У меня есть запрос, который отлично работает при выполнении из SQL Server Management Studio, но продолжает выдавать эту ошибку:
Ошибка выполнения SQL
Выполненный оператор SQL: ...
Источник ошибки: поставщик .Net SqlClientData
Сообщение об ошибке: параметр 3 ([dbName]. []. [Unknown]): тип CLR не существует или у вас нет прав доступа к нему.
всякий раз, когда я пытаюсь выполнить запрос в конструкторе запросов Visual Studio (SSRS).
Запрос выбирает несколько полей из нескольких таблиц в подзапросе, а затем вычисляет некоторые агрегированные значения во внешнем запросе. Я удалил набор данных и перестроил его, но все еще получаю ту же ошибку.
Я проследил это до двух строк:
СЛУЧАЙ, КОГДА R.ClosingDate> = @StartDate AND CS.ClosingStatus = 'Семейство не повреждено', ТОГДА 1 ИЛИ 0, КОНЕЦ КАК Period_InTact
Случай, когда R.ClosingDate> = @StartDate AND CR.ClosingReason = 'Withdrawn' THEN 1 ELSE 0 END AS Period_Withdrawn
которые работают правильно, если я жестко закодировал дату вместо @ StartDate.
Буду признателен за предложения.
SELECT SUM(CASE WHEN T.Period_Intact = 1 AND Age >= 0 AND Age < 7 THEN 1 ELSE 0 END) AS Period_Intact_Zero_to_Six
, SUM(CASE WHEN T.YTD_Intact = 1 AND Age >= 0 AND Age < 7 THEN 1 ELSE 0 END) AS YTD_Intact_Zero_to_Six
, SUM(CASE WHEN T.Period_Intact = 1 AND Age > 6 AND Age < 19 THEN 1 ELSE 0 END) AS Period_Intact_Seven_to_18
, SUM(CASE WHEN T.YTD_Intact = 1 AND Age > 6 AND Age < 19 THEN 1 ELSE 0 END) AS YTD_Intact_Seven_to_18
, SUM(CASE WHEN T.Period_Withdrawn = 1 AND Age >= 0 AND Age < 7 THEN 1 ELSE 0 END) AS Period_Intact_Zero_to_Six
, SUM(CASE WHEN T.YTD_Withdrawn = 1 AND Age >= 0 AND Age < 7 THEN 1 ELSE 0 END) AS YTD_Intact_Zero_to_Six
, SUM(CASE WHEN T.Period_Withdrawn = 1 AND Age > 6 AND Age < 19 THEN 1 ELSE 0 END) AS Period_Intact_Seven_to_18
, SUM(CASE WHEN T.YTD_Withdrawn = 1 AND Age > 6 AND Age < 19 THEN 1 ELSE 0 END) AS YTD_Intact_Seven_to_18
FROM (
SELECT R.ProgramID, R.CountyID, R.ReferralName, R.ReferralID
, Cast(R.ReferralDate as date) as ReferralDate, Cast(R.ClosingDate as date) as ClosingDate
, RCND.FirstName, RCND.LastName
, CASE WHEN RCND.DOB IS NULL THEN -1
WHEN R.ClosingDate IS NULL then -1
ELSE Datediff(year, RCND.DOB, R.ClosingDate) - CASE WHEN datefromparts(Year(getdate()), Month(R.ClosingDate), Day(R.ClosingDate)) <= datefromparts(Year(getdate()), Month(RCND.DOB), Day(RCND.DOB)) THEN 1 ELSE 0 END
END as Age
, R.ClosingReasonID, CR.ClosingReason
, R.ClosingStatusID, IsNull(CS.ClosingStatus, '') as ClosingStatus
, CASE WHEN R.ClosingDate >= @StartDate AND CS.ClosingStatus = 'Family Intact' THEN 1 Else 0 END as Period_InTact
, CASE WHEN CS.ClosingStatus = 'Family Intact' THEN 1 Else 0 END as YTD_InTact
, CASE WHEN R.ClosingDate >= @StartDate AND CR.ClosingReason = 'Withdrawn' THEN 1 ELSE 0 END as Period_Withdrawn
, CASE WHEN CR.ClosingReason = 'Withdrawn' THEN 1 ELSE 0 END as YTD_Withdrawn
FROM tblFPReferrals AS R LEFT JOIN
tblFPClosingReasons AS CR ON R.ClosingReasonID = CR.ClosingReasonID LEFT JOIN
tblFPClosingStatuses as CS on R.ClosingStatusID = CS.ClosingStatusID LEFT JOIN
dbo.vw_Referral_Children_Names_and_DOB as RCND ON R.ReferralID = RCND.ReferralID
WHERE (R.ProgramID = @ProgramID)
AND (R.CountyID = @CountyID)
AND (R.ReferralDate < DateAdd(day, 1, @EndDate))
AND R.ClosingDate >= Cast(cast(Year(@EndDate) + (case when Month(@EndDate) >= 10 then 0 else -1 end) as nvarchar) + '-10-01' as date)
AND R.ClosingDate < Dateadd(day, 1, @EndDate)
) AS T