Добрый день!
Нужно добавит фильтр в группу фильтров. На сервере запрос выглядит так:
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, и там этот параметр не виден:
[sql]
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}'
[/sql]
однако в тексте колонки стоит
[sql]
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]
Елена, условие можно добавить стандартными средствами, приложенный Дмитрием запрос иллюстрирует как раз суть решения Вашей задачи по добавлению SQL-колонки в систему.
Производилась ли Вами настройка колонки согласно предложенному Дмитрием примеру?
решение Дмитрия выглядит вот так:
[sql]
SELECT
NULL AS [ContactID]
FROM
[dbo].[tbl_Empty] AS [d]
[/sql]
Пустая колонка. пустая таблица. Мне нужно совсем другое:
реализовать такой запрос в конструкторе:
[sql]
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] ))
[/sql]
где :OwnerID - параметр, выбирающийся в быстром фильтре раздела.
Елена,
в данном случае проблема в том, что дизайнер запросов подставляет вместо значения CustomSQL-колонки ее содержимое, то есть, запрос.
Данная проблема исправлена на последних версиях 3.4.1, мы спустим исправления на 3.3.2 и предоставим Вам новые бинарные файлы.
Что касается запроса, пример настроенного запроса в приложении. Данный запрос будет работать после обновления бинарных файлов.

Елена, ориентировочные сроки, предоставленные отделом разработки - 7 декабря.
Анна, а какой релиз вышел для TS3.3.2 в декабре? Мы работает на 3.3.2.278 :(
И ещё злободневный вопрос: здесь в трейс листе есть код
[sql]
...........
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}'
[/sql]
КАКИМ образом в 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-Центре"
Алексей, оптимальным вариантом будет прикрепить данную информацию к инциденту.
Инциденту в портале? Там уже всё есть. И сервисы и трейс-листы. Спасибо.