Как отобразить столбцы из таблицы на основе счетчика другой таблицы без необходимости добавлять счетчик в оператор SELECT? - PullRequest
0 голосов
/ 07 мая 2020

Итак, я хочу отобразить все в таблице OWNER, но в зависимости от количества собак, которые он имеет в таблице DOG.

SELECT o.OwnerId, o.Name, o.Address, o.Contact
FROM OWNER o LEFT JOIN DOG d ON o.OwnerId = d.OwnerId
WHERE DATEDIFF(year, d.DateOfBirth, '05.04.2014') > 2
HAVING COUNT(d.OwnerId) >= 2

Однако, когда я запускаю это, я получаю сообщение об ошибке Column 'OWNER. OwnerId 'недействителен в списке выбора, потому что он не содержится ни в агрегатной функции, ни в предложении GROUP BY.

На основании подобных проблем и моего понимания я прочитал, что вам нужно добавить агрегат в вашем SELECT, но даже когда я, ошибка просто перейдет к следующему столбцу, который будет Name. При этом я не хочу, чтобы счетчик действительно отображался. Только столбцы в таблице OWNER.

1 Ответ

0 голосов
/ 07 мая 2020
SELECT o.OwnerId, o.Name, o.Address, o.Contact
FROM OWNER o LEFT JOIN DOG d ON o.OwnerId = d.OwnerId
WHERE DATEDIFF(year, d.DateOfBirth, '05.04.2014') > 2
GROUP BY o.OwnerId, o.Name, o.Address, o.Contact
HAVING COUNT(d.DogId) >= 2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...