Добрый день!
Нужно добавит фильтр в группу фильтров. На сервере запрос выглядит так:
FROM (
SELECT
Id
, CustomerID
, CreatedOn ,OwnerID
,row_number() over (partition BY CustomerID ORDER BY CreatedOn DESC) AS rn
FROM
tbl_Opportunity
) AS d
WHERE RN = 1 AND d.OwnerID = :OwnerID
как осуществить это в конструкторе?
в моей реализации ошибка, от которой пока нет идей как избавиться.
Нравится
Немного упростил запрос (не добавлял условия), однако запрос выполняется без ошибок:
Сам сервис во вложении.
В том-то и дело, что нужно условие.
получается, что фильтр сделан для параметра, который указан в колонке типа sql Text Colomn, и там этот параметр не виден:
exec sp_executesql N'SELECT TOP 40 [tbl_Account].[ID] AS [ID], [tbl_Account].[Name] AS [Name], [tbl_Account].[Communication1] AS [Communication1], [tbl_Account].[Communication2] AS [Communication2], [tbl_City].[Name] AS [CityName], [tbl_Account].[CityID] AS [CityID], [tbl_Account].[CountryID] AS [CountryID], [tbl_Account].[StateID] AS [StateID], [tbl_Account].[AccountTypeID] AS [AccountTypeID], [tbl_AccountType].[Name] AS [AccountTypeName], [tbl_Account].[TaxRegistrationCode] AS [TaxRegistrationCode] FROM [dbo].[tbl_Account] AS [tbl_Account] LEFT OUTER JOIN [dbo].[tbl_City] AS [tbl_City] ON [tbl_City].[ID] = [tbl_Account].[CityID] LEFT OUTER JOIN [dbo].[tbl_AccountType] AS [tbl_AccountType] ON [tbl_AccountType].[ID] = [tbl_Account].[AccountTypeID] WHERE(([tbl_Account].[OwnerID] = ''{93C4775E-589A-447E-BA47-F99816015E6F}'') AND (EXISTS (SELECT d.CustomerID from ( select Id , CustomerID , CreatedOn , OwnerID ,row_number() over (partition by CustomerID order by CreatedOn desc) as rn from tbl_Opportunity ) as d where RN = 1 and d.OwnerID = @P1 and tbl_Account.ID = d.CustomerID AS [ID] FROM [dbo].[tbl_Empty] AS [d] WHERE((@P2 IN (@P3)))))) ORDER BY 2 ASC',N'@P1 varchar(1),@P2 varchar(1),@P3 nvarchar(38)',NULL,NULL,N'{D27E9D09-387D-4BA5-ADC2-ECACBAA1D156}'
однако в тексте колонки стоит
d.CustomerID from ( select Id , CustomerID , CreatedOn , OwnerID ,row_number() over (partition by CustomerID order by CreatedOn desc) as rn from tbl_Opportunity ) as d where RN = 1 and d.OwnerID = :OwnerID and tbl_Account.ID = d.CustomerID
Елена, условие можно добавить стандартными средствами, приложенный Дмитрием запрос иллюстрирует как раз суть решения Вашей задачи по добавлению SQL-колонки в систему.
Производилась ли Вами настройка колонки согласно предложенному Дмитрием примеру?
решение Дмитрия выглядит вот так:
SELECT NULL AS [ContactID] FROM [dbo].[tbl_Empty] AS [d]
Пустая колонка. пустая таблица. Мне нужно совсем другое:
реализовать такой запрос в конструкторе:
WHERE(EXISTS (SELECT d.CustomerID from ( select Id , CustomerID , CreatedOn , OwnerID ,row_number() over (partition by CustomerID order by CreatedOn desc) as rn from tbl_Opportunity ) as d where RN = 1 and d.OwnerID =:OwnerID and d.CustomerID = [tbl_Account].[ID] ))
где :OwnerID - параметр, выбирающийся в быстром фильтре раздела.
Елена,
в данном случае проблема в том, что дизайнер запросов подставляет вместо значения CustomSQL-колонки ее содержимое, то есть, запрос.
Данная проблема исправлена на последних версиях 3.4.1, мы спустим исправления на 3.3.2 и предоставим Вам новые бинарные файлы.
Что касается запроса, пример настроенного запроса в приложении. Данный запрос будет работать после обновления бинарных файлов.
Елена, ориентировочные сроки, предоставленные отделом разработки - 7 декабря.
Анна, а какой релиз вышел для TS3.3.2 в декабре? Мы работает на 3.3.2.278 :(
И ещё злободневный вопрос: здесь в трейс листе есть код
........... where RN = 1 and d.OwnerID = @P1 and tbl_Account.ID = d.CustomerID AS [ID] FROM [dbo].[tbl_Empty] AS [d] WHERE((@P2 IN (@P3)))))) ORDER BY 2 ASC',N'@P1 varchar(1),@P2 varchar(1),@P3 nvarchar(38)',NULL,NULL,N'{D27E9D09-387D-4BA5-ADC2-ECACBAA1D156}'
КАКИМ образом в varchar(1) поместится GUID , а в nvarchar(38) - список GUIDs??
Как определяет ядро когда и какую размерность под GUID ставить? У меня возникает нестабильная ошибка на этом (бывает и varchar(8000)):
"Insufficient result space to convert uniqueidentifier value to char."
Здравствуйте, Алексей!
Актуальная сборка для Вашей версии - 3.3.2.290.
Проблема, описанная выше, исправлена начиная со сборки 3.3.2.287.
Что касается поисанного Вами сбоя - он требует детального разбора. Есть ли У Вас возможность предоставить скриншот структуры запроса в sq_ и результирующий запрос из профайлера?
Алексей, по результатам анализа:
Размерность параметра выставляется компонентами доступа к MSSQL (MDAC), перед выполнением запроса и если в параметре NULL, там будет varchar(1), а если там уникальный идентификатор то (38)
Анна, у меня есть два трейса от двух разных пользователей по одному и тому же запросу - размерность выставляется разная и в случае varchar(1) сервер выдаёт ошибку.
Вставлять? Или создадим новую тему? (я не мастер блога)
Можно посмотреть на вашем портале самообслуживания: инцидент №0135535 "Плавающая ошибка в Call-Центре"
Алексей, оптимальным вариантом будет прикрепить данную информацию к инциденту.
Инциденту в портале? Там уже всё есть. И сервисы и трейс-листы. Спасибо.