2013-07-08 4 views
0

У меня проблема с запросом mssql. Это запрос:Mssql GROUP BY и поле «Изображение»

SELECT 
    MAX(sprNomenklatura._IDRRef) AS 'link', 
    pictures._Fld8035 AS 'picture' 
    FROM 
    _Reference62 sprnomenklatura 
    LEFT JOIN _InfoRg8032 pictures 
    ON pictures._Fld8033RRef = sprNomenklatura._IDRRef 
    GROUP BY 
    sprnomenklatura._IDRref 

Проблема состоит в том, что одна из областей я хочу, чтобы выбрать (pictures._Fld8035) является тип «Image». Это поле не может быть присвоено агрегированной функции, такой как MAX, MIN и т. Д. И я не могу выполнить этот запрос, потому что mysql хочет, чтобы это поле было в некоторой агрегированной функции или в выражении «GROUP BY» (что также недопустимо с помощью mssql для типа данных «изображение»).

Какую функцию агрегата я должен использовать для этого типа поля «изображение», чтобы заставить запрос работать?

Да, он может разделить этот запрос на 2 разных, но sprNomenklatura._IDRRef - это двоичные данные и помещает его значение в оператор «IN» во второй синтаксической ошибке результатов запроса.

ответ

1

попробовать этот

SELECT link,pictures._Fld8035 as 'picture' 
    FROM 
    (
    SELECT 
     MAX(sprNomenklatura._IDRRef) AS 'link' 
     FROM _Reference62 sprnomenklatura 
     GROUP BY sprnomenklatura._IDRref 
    ) as a 
    LEFT JOIN _InfoRg8032 pictures 
     ON pictures._Fld8033RRef = a.link 
+0

это работает, спасибо – Dmitry