Я работаю над своей домашней работой, и у меня возникают проблемы с определением правильного синтаксиса для функции «НЕ В».
База данных представляет собой небольшую базу данных страхования (перевозчики, участники, работодатели, планы), сделанныена это назначение.Я должен выяснить: «Какие планы не имеют подписок на участников? Перечислите PlanID, plnDescription и plnCost. (Подсказка: используйте вложенный оператор Select с предложением NOT IN.)»
Вот чтоЯ написал по состоянию на сейчас:
SELECT planid, plndescription, plncost
FROM plans
WHERE planid NOT IN
(SELECT memberno FROM members);
И когда я запускаю этот запрос, я получаю ответ, выбранный из 0 строк.
Когда я вынимаю оператор WHERE, я получаю следующееответ:
PLANID PLNDESCRIPTION PLNCOST
---------------------- ----------------------------------- ----------------
1 Single Basic Medical 72.5
2 2-Party Basic Medical 140
3 Family Basic Medical 225
4 Single SuperMed 110
5 2-Party SuperMed 200
6 Family SuperMed 350
7 Single Dental Only 35
8 Family Dental Only 70
9 Life Only 16.5
10 Single SuperMed with Dental 125
11 2-Party SuperMed with Dental 240
12 Family SuperMed with Dental 425
12 rows selected
Я уверен, что моя ошибка в операторе WHERE, потому что я уверен, что я использую неправильные имена полей в операторе WHERE, а также во втором операторе SELECT.Любая помощь очень ценится.
Структура таблицы членов:
Name Null Type
------------------------------ -------- -------------
MEMBERNO NOT NULL NUMBER
MBRFIRSTNAME CHAR(35)
MBRLASTNAME CHAR(35)
MBRSTREET CHAR(50)
MBRCITY CHAR(30)
MBRSTATE CHAR(2)
MBRZIP CHAR(10)
MBRPHONENO CHAR(10)
PLANID NUMBER
MBREMAIL CHAR(255)
MBRDATEEFFECTIVE DATE
EMPLOYERID NUMBER
12 rows selected
Структура таблицы планов:
Name Null Type
------------------- -------- -------------
PLANID NOT NULL NUMBER
PLNDESCRIPTION CHAR(35)
PLNCOST NUMBER(8,2)
CARRIERID CHAR(4)
4 rows selected