コードを実行しました
SELECT CASE b.ON_LOAN
when 'Y' then
'In Lib'
when 'N' then
(SELECT c.duedate from book_copy a, book b, loan c
where b.isbn = 123456
and a.isbn = b.isbn
and a.book_no = c.book_no)
END AS Availability, a.isbn, a.class_number
FROM book_copy b, book a
where a.isbn = b.isbn and a.isbn = 123456
サブクエリが複数の行を返すというエラーを返します。本の入手可能性を取得しようとしています。book_no によって識別される本には、複数のコピーを含めることができます。コピーが利用可能な場合は、'In lib' だけで再実行する必要があります。それ以外の場合は、loan テーブルからの期日です。たとえば、書籍に 3 つのコピーがあり、2 つがライブラリにあり、1 つがライブラリにある場合、クエリで 3 つすべてのコピーを表示する必要があります。外部結合が欠落していると思います。明確にしてください。
これに使用するテーブルは
book_copy: book_no, isbn, on_loan
loan: student_id, book_no, duedate,datereturned,loan_id
fk: book_no with book_no in book_copy
book: isbn (pk), title, class
ありがとう、rk