Member 13864666 Ответов: 2

Ошибка в предложении WHERE


Привет, я делаю вопрос sql, n я набрал код, он показывает ошибку, которая связана с предложением Where и подзапросами. Пожалуйста, кто-нибудь дайте мне решение.

Что я уже пробовал:

SELECT B.movie_title AS 'Movie Title',
A.branchID AS 'Branch ID',
C.dvdID AS 'Total_Number_of_DVD'
FROM RENT A
JOIN MOVIE B ON(B.movieID = A.movieID)
JOIN DVD C ON(C.dvdID = A.dvdID)
WHERE A.dvdID IN (SELECT COUNT(A.dvdID) AS 'Total_DVDs_Rented' 
WHERE date_returned = NULL) AND A.dvdID IN (SELECT COUNT(C.dvdID - A.dvdID ) AS 'Total DVDs Available' 
WHERE date_returned = NULL) 
AND movie_title = 'DEADPOOL2';

CHill60

Я предполагаю, что ошибка заключается в следующем An aggregate may not appear in the WHERE clause unless it is in a subquery contained in a HAVING clause or a select list, and the column being aggregated is an outer reference.?

CHill60

Вы путаете идентификаторы с количеством вещей - просто потому, что две вещи-это число, не означает, что вы должны сравнивать их друг с другом.
Покажите некоторые примеры данных и объясните, что вы хотите получить в качестве ожидаемых результатов

W∴ Balboos, GHB

Почему вы должны называть возвращаемое поле в подзапросах?

Было бы, конечно, тоже полезно, если бы вы ... :
1 - дал нам фактическое сообщение об ошибке, которое вы получили
2 - уважал нас достаточно, чтобы на самом деле выписывать слова и не использовать текстовые мусорные аббревиатуры.

#realJSOP

Этот

2 Ответов

Рейтинг:
2

amit kalshetti

использовать только один оператор Where и еще одно условие использования и / или пунктом не где...


Только одно предложение where, которое мы можем использовать в противном случае, дает синтаксическую ошибку.


Richard Deeming

Это трудно увидеть из-за отсутствия отступов, но дополнительные WHERE предложения в вопросе находятся внутри подзапросов. Синтаксис этой части запроса является допустимым.

Рейтинг:
0

#realJSOP

Попробуй что нибудь такое:

SELECT  B.movie_title AS [Movie Title],
        A.branchID    AS [Branch ID],
        C.dvdID       AS [Total_Number_of_DVD]
FROM    RENT AS A
INNER JOIN MOVIE AS B ON B.movieID = A.movieID
INNER JOIN DVD   AS C ON C.dvdID = A.dvdID
WHERE A.dvdID IN (SELECT A.dvdID from RENT)
and   date_returned = NULL 
AND   movie_title = 'DEADPOOL2';


Предостережение: я понятия не имею, сработает ли это, потому что у меня нет схем или данных для работы, поэтому я предоставляю вам - как программисту sql - массировать его в соответствии с вашими потребностями.