В списке выбора можно указать только одно выражение - PullRequest
0 голосов
/ 21 мая 2011

Мне нужно, чтобы этот SQL-запрос работал:

SELECT     TOP 15 id, thumb, width, height
FROM         (SELECT     vPictures.id, vPictures.thumb, vPictureCrops.width, vPictureCrops.height
                       FROM          vPictures INNER JOIN
                                              vPictureCrops ON vPictures.id = vPictureCrops.picid
                       WHERE      (vPictureCrops.width = '602') AND (vPictureCrops.height = '131')
                       GROUP BY vPictures.id, vPictures.thumb, vPictureCrops.width, vPictureCrops.height) AS derivedtbl_1
WHERE     (id NOT IN
                          (SELECT     TOP 0 vPictures_1.id, vPictures_1.datetime, vPictures_1.url, vPictures_1.author, vPictures_1.companyID, vPictures_1.source, 
                                                   vPictures_1.people, vPictures_1.text, vPictures_1.thumb, vPictures_1.logo, vPictureCrops_1.id AS Expr1, vPictureCrops_1.picid, 
                                                   vPictureCrops_1.url AS Expr2, vPictureCrops_1.width, vPictureCrops_1.height
                            FROM          vPictures AS vPictures_1 INNER JOIN
                                                   vPictureCrops AS vPictureCrops_1 ON vPictures_1.id = vPictureCrops_1.picid))
ORDER BY id DESC

Вы можете мне помочь?

Сообщение об ошибке: «В списке выбора можно указать только одно выражение, если подзапрос не введен с EXISTS)»

Ответы [ 2 ]

1 голос
/ 21 мая 2011

Я вижу две проблемы с (id NOT IN (SELECT TOP 0 vPictures_1.id, ...

  1. только тогда, когда столбец должен быть указан в операторе select после IN.Например, (id NOT IN (SELECT vPictures_1.id FROM ...

  2. , даже если вы сделаете только одно поле vPictures_1.id, условие всегда будет ложным из-за top 0.

1 голос
/ 21 мая 2011

Где (ID не в (

Поле выбора должно иметь только одно поле, если IN не может понять, какой столбец вы пытаетесь проанализировать.

Например, здесь

USE AdventureWorks2008R2;
GO
SELECT p.FirstName, p.LastName
FROM Person.Person AS p
    JOIN Sales.SalesPerson AS sp
    ON p.BusinessEntityID = sp.BusinessEntityID
WHERE p.BusinessEntityID IN
   (SELECT BusinessEntityID
   FROM Sales.SalesPerson
   WHERE SalesQuota > 250000);
GO

Не уверен, что вы пытаетесь достичь с помощью запроса в любом случае, вы можете объяснить использование предложения where в

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...