初めに
現在、3つのテーブル貸し出し履歴、文書目録、文書台帳から、在庫を導き出そうとしていますが、
うまくできません。
##テーブル
- 貸し出し履歴(rentalhistory)
カラム説明
・ rental_id ・・・貸し出しID
・ member_id ・・・利用者ID
・ doc_id ・・・文書ID
・ rental_date・・・貸し出し年月日
・ deadline_date・・・返却期日
・ return_date・・・返却年月日
- 文書目録(doc_resister)
カラム説明
・ doc_id ・・・文書ID
・ doc_isbn・・・isbn番号
・ arrival_date・・・入荷年月日
・ disposal_date・・・廃棄年月日
- 文書台帳
カラム説明
・ doc_isbn・・・isbn番号
・ doc_name・・・文書名
・ sort_id・・・分類コード
・ author・・・著者
・ publisher・・・出版社
・ release_date・・・出版日
##実現したいこと
isbn番号、文書名、分類コード、著者、出版社、出版日、在庫
を表示させたいです。
##試したこと
在庫は、
本の数-まだ貸し出しされていない冊数=在庫だと思っているのですが、
なかなかうまくいきません。
sql
1select l.doc_isbn, l.doc_name, l.sort_id, l.author, l.publisher, l.release_date, count( l.doc_isbn) 2FROM doc_list l FULL JOIN doc_register d ON l.doc_isbn = d.doc_isbn FULL JOIN rental r ON d.doc_id = r.doc_id 3WHERE sort_id = ? and (rental_id is null or return_date is not null ) 4GROUP BY l.doc_isbn, l.doc_name 5
javaからsql文を実行しているので、プレースホルダーが1つありますが、ここには分類コード入れています。
実行結果は、
在庫ではなく、
本の数全体が出てきてしまいます。
回答2件
あなたの回答
tips
プレビュー