Oracle Query возвращает не выбранные строки ошибки - PullRequest
0 голосов
/ 30 ноября 2018

Мне нужна помощь в решении этого запроса. Перечислите сведения о сотрудниках для сотрудников, которые работают в том же кинотеатре, что и сотрудник Джо Блоггс, у которого empno 77. Что я сделал неправильно, чтобы он возвратился (строки не выбраны).

   SELECT *
   FROM Employee
   WHERE Cinema_no = ( SELECT Cinema_no 
   FROM Employee
   WHERE First_name = 'Joe' AND Surname = 'Bloggs')
   ORDER BY Surname ASC ;

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

Не уверен на 100%, как выглядят ваши данные, но замените '=' на ключевое слово 'в' Это пригодится для будущих запросов, использующих эту логику.Я внес изменение и добавил код ниже.

   SELECT *
   FROM Employee
   WHERE Cinema_no in ( SELECT Cinema_no 
   FROM Employee
   WHERE First_name = 'Joe' AND Surname = 'Bloggs')
   ORDER BY Surname ASC ;
0 голосов
/ 30 ноября 2018

Если предположить, что все имена таблиц и столбцов верны, то для отладки сначала необходимо убедиться, что подзапрос работает.Запустите его отдельно, для некоторой отладки "след и ошибка"

SELECT
    *
FROM Employee
WHERE First_name = 'Joe'
AND Surname = 'Bloggs'

Возможно, попробуйте LIKE?и / или с меньшим количеством условий

SELECT
    *
FROM Employee
WHERE First_name LIKE 'Joe%'
-- AND Surname LIKE 'Bloggs%' 
-- AND empno = 77

удалите - если вышеописанное работает

Как только это полностью заработает, тогда баланс вашего запроса должен соответствовать вашей цели.


SELECT *
FROM Employee
WHERE Cinema_no = (
   SELECT Cinema_no 
   FROM Employee
   WHERE First_name = 'Joe' AND Surname = 'Bloggs'
   and empno = 77
   )
and empno <> 77
ORDER BY Surname ASC ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...