Сообщение об ошибки, при испрользовании в select_query GROUP BY

Вот так выглядит у меня preview select_query :

SELECT DISTINCT
        min(cast([tbl_Opportunity].[ID]  AS char(36))) AS [ID],
        [tbl_Opportunity].[ShopName] AS [ShopName],
        MIN([tbl_Contract].[StartDate]) AS [StartDate]
FROM
        [dbo].[tbl_Contract] AS [tbl_Contract]
LEFT OUTER JOIN
        [dbo].[tbl_Opportunity] AS [tbl_Opportunity] ON [tbl_Opportunity].[ID] = [tbl_Contract].[OpportunityID]
LEFT OUTER JOIN
        [dbo].[tbl_Activity] AS [tbl_Activity] ON [tbl_Activity].[ID] = [tbl_Opportunity].[ActivityID]
LEFT OUTER JOIN
        [dbo].[tbl_Assortment] AS [tbl_Assortment] ON [tbl_Assortment].[ID] = [tbl_Activity].[AssortmentID]
LEFT OUTER JOIN
        [dbo].[tbl_ContractStatus] AS [tbl_ContractStatus] ON [tbl_ContractStatus].[ID] = [tbl_Contract].[ContractStatusID]
WHERE([tbl_Assortment].[ID] = :AssortmentID AND
        [tbl_Opportunity].[TradeCentreID] = :TradeCentreID AND
        NOT [tbl_Opportunity].[ShopName] IS NULL AND
        [tbl_ContractStatus].[Name] = :Statuss)
GROUP BY
        [tbl_Opportunity].[ShopName]
ORDER BY
        2 ASC

Однако, при попытке получить из query данные, я получаю ошибку :

Нравится

9 комментариев

А если сделать min(ShopName)?

Ну тогда он выдает самый первый по алфавиту магазин. А мне нужны все.

Тут же GROUP BY ShopName, оно из каждой группы с одним именем и выведет это имя.

Александр, прощу прощения, я не очень понимаю Вас. Так в чем у меня ошибка?

Наталия, немного изменила Ваш запрос чтобы проверить в базовой версии - отработал без ошибок:
/system/files/1_125.png

Выполните его на уровне СУБД, отсекая отдельные фрагменты (чтобы понять в чем причина).

А в том то и дело, что если я запускаю вышеуказанный скрипт в SQL - все отрабатывается идеально.
А при попытке вывести значения в LookUp, получаю вот такое сообщение.

А если так:

SELECT 
        min(cast([tbl_Opportunity].[ID]  AS char(36))) AS [ID],
        min([tbl_Opportunity].[ShopName]) AS [ShopName],
        MIN([tbl_Contract].[StartDate]) AS [StartDate]

"Зверев Александр" написал:

А если так:

SELECT

        min(cast([tbl_Opportunity].[ID]  AS char(36))) AS [ID],

        min([tbl_Opportunity].[ShopName]) AS [ShopName],

        MIN([tbl_Contract].[StartDate]) AS [StartDate]


"Наталия П." написал:

Ну тогда он выдает самый первый по алфавиту магазин. А мне нужны все.

Наталия, скорее всего происходит отключение конструкции GROUP BY, что и вызывает ошибку.
Для тестирование необходима следующая информация:
1. Результат профайлера при попытке вывести значения в LookUp.
2. Сервис select query (и другие сервисы, необходимые для его работы).
3. Какая логика программно обрабатывает select query (код в событии OnPrepareSelectWindow)

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