Платформа не поддерживает поля колонки с текстом SQL запроса!!!

Вечер добрый. Задачка вот такая... Не знаю, что за баг, но странно..... Итак -

Создаю SQL запрос.... Вроде бы все должно работать, прогоняю его - работает... Запрос простой - вот

SELECT
        [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 запроса, и мне приходится постоянно прописывать в построителе запросов???? А если запрос будет сложнее???? Тогда как????

Нравится

1 комментарий

Добрый день, Евгений!
Для колонки типа CustomSQLColumn и поля набора данных, построенного на его основе, на данный момент (3.3.1.х) есть ограничения по использованию, в частности, пока недоступна фильтрация. В будущих версиях разработчики обязательно учтут это замечание. В вашем случае выходом их положения является использование SubSelectColumn, для которых доступна фильтрация и сортировка.

В особо сложных аналитических отчетах рекомендуется требуемые вычисления реализовать на уровне хранимой процедуры, подготавливать результат в промежуточной таблице, и выводить результат простым чтением данных из промежуточной таблице.
Буду рад ответить на Ваши вопросы.

Показать все комментарии