Я попытаюсь объяснить мою проблему, используя аналогичную, но более простую проблему.Допустим, я пишу программное обеспечение для библиотеки с таблицей Patron
s и Book
s.Кроме того, у него есть таблица CheckOuts
, которая связывает Patron
s с любыми Book
s (1 на строку), которые они извлекли.
Я использую MSSQL 2005 и мне нужно создатьпросмотр или хранимая процедура, которая содержит два столбца, PatronID
и HasBook
, которые должны генерироваться динамически: 1, если у клиента есть одна или несколько книг, и 0 в противном случае.
Вот мой первыйпопытка написать запрос для этого:
SELECT PatronID, MIN((SELECT 1, COUNT(BookID) FROM CheckOuts WHERE CheckOuts.PatronID = Patrons.PatronID)) AS HasBook
FROM Patrons
Я получаю ошибку:
Невозможно выполнить агрегатную функцию для выражения, содержащего агрегат или подзапрос.
Я очень новый пользователь SQL, поэтому, если этот запрос заставит вас вздрогнуть, я буду искренне признателен за любой совет, который вы хотели бы дать.Я очень заинтересован в «правильном» способе сделать это.