Тип CLR не существует или у вас нет прав доступа к нему - PullRequest
0 голосов
/ 26 апреля 2018

Работа в 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...