Платформа не поддерживает поля колонки с текстом SQL запроса!!!
Вечер добрый. Задачка вот такая... Не знаю, что за баг, но странно..... Итак -
Создаю SQL запрос.... Вроде бы все должно работать, прогоняю его - работает... Запрос простой - вот
[tbl_Document].[Title] AS [Title],
[tbl_Document].[DocumentNumber] AS [DocumentNumber],
[tbl_Document].[InvoiceID] AS [InvoiceID],
[tbl_Document].[Description] AS [Description],
[tbl_Invoice].[Amount] AS [InvoiceAmount],
[tbl_Invoice].[InvoiceNumber] AS [InvoiceNumber],
[Account].[Name] AS [AccountName],
[EmployrContact].[Name] AS [EmployrName],
[tbl_Document].[AccountID] AS [AccountID],
[tbl_Document].[EmployrContactID] AS [EmployrContactID],
(SELECT
MAX([tbl_PlanningOfNumber].[DateOfIssue]) AS [DateOfIssue]
FROM
[dbo].[tbl_Outputs] AS [tbl_Outputs]
LEFT OUTER JOIN
[dbo].[tbl_PlanningOfNumber] AS [tbl_PlanningOfNumber] ON [tbl_PlanningOfNumber].[ID] = [tbl_Outputs].[PlanedPlanningNumberID]
LEFT OUTER JOIN
[dbo].[tbl_OfferingInDocument] AS [tbl_OfferingInDocument] ON [tbl_OfferingInDocument].[ID] = [tbl_Outputs].[OfferingInDocumentID]
WHERE([tbl_Document].[ID] = [tbl_OfferingInDocument].[DocumentID])) AS [DateFinished],
[tbl_Document].[PublicationsAmount] AS [PublicationsAmount],
[tbl_Document].[Sum] AS [Sum]
FROM
[dbo].[tbl_Document] AS [tbl_Document]
LEFT OUTER JOIN
[dbo].[tbl_Account] AS [Account] ON [Account].[ID] = [tbl_Document].[AccountID]
LEFT OUTER JOIN
[dbo].[tbl_Invoice] AS [tbl_Invoice] ON [tbl_Invoice].[DocumentID] = [tbl_Document].[ID]
LEFT OUTER JOIN
[dbo].[tbl_Contact] AS [EmployrContact] ON [EmployrContact].[ID] = [tbl_Document].[EmployrContactID]
Перенес этот запрос в Террасофт и с помощью построителя запросов создал запрос в террасофте, используя одну колонку - колонку с текстом SQL. Потом сделал датасет, фастрепорт и добавил фильтр на дату - т.е. на это самое поле - DateFinished. Вот фильтр -
В итоге, если фильтровать значения по этому полу - результат - НИЧЕГО. Если фильтр не включать запрос отрабатывает нормально - все строки выдаются.
Ладно, решил это поле построить тоже с помощью построителя запросов, а старое переименовать - вот что получилось
Просматривая запрос видим, что поля абсолютно одинаковые -
Используя новую колонку и отключая старую все работает и фильтр тоже нормально фильтрует....
Вопрос - почему так происходит?????
Почему я не могу использовать нормально колонку SQL запроса, и мне приходится постоянно прописывать в построителе запросов???? А если запрос будет сложнее???? Тогда как????
Нравится
Добрый день, Евгений!
Для колонки типа CustomSQLColumn и поля набора данных, построенного на его основе, на данный момент (3.3.1.х) есть ограничения по использованию, в частности, пока недоступна фильтрация. В будущих версиях разработчики обязательно учтут это замечание. В вашем случае выходом их положения является использование SubSelectColumn, для которых доступна фильтрация и сортировка.
В особо сложных аналитических отчетах рекомендуется требуемые вычисления реализовать на уровне хранимой процедуры, подготавливать результат в промежуточной таблице, и выводить результат простым чтением данных из промежуточной таблице.
Буду рад ответить на Ваши вопросы.