2016-03-16 7 views
6

私は3つのテーブルtblinventory、tbldisbursement、tblmissinglostを持っています。私は現在の日の支払いと返品を差し引いた後、書籍の総在庫を計算したいと思います。ライブラリ内の書籍の在庫を計算するためのMysqlクエリ

いくつかのエントリで私は正解と他の結果エントリに間違った答えが表示されます。あなたは親切にこれに対する解決策を提供できますか?

tblinventory

id Name 
---------- 
1 xyz 

は= 10

tbldisbursement 1 =実行額及び0 =返さ

**booknameFK disbursed/returned** 
---------------------------------------- 
Booknafk1     1 
Booknafk2     0 
Booknafk3     1 

調達総書籍を考える

tblmissinglost

**id BooknameFk missng** 
---------------------------------------- 
1 Booknafk1 lost 
2 Booknafk1 lost 

---------------------------------------- 

また、このクエリ

select (bn.No_of_books_procured) as procured, 
    count(distinct mis.Id_missingbooks_pid) as missing, 
    count(case when bs.dis_disbursed_return!=0 then 
    bs.dis_disbursed_return end) as disbursed 
from tbl_limgt_booksmissing_lost_adjust mis 
join tbllibmange_disbursement bs on 
mis.book_name_missingbk=bs.dis_book_name_fk_id   
join tbl_inventorylibbooks bn on bs.dis_book_name_fk_id=bn.Id_inventory 
where bn.Id_inventory=14 group by bn.Id_inventory 

私は重複したエントリ

を取得していますを確認し

this is the result of above query

+1

現在の出力と希望する出力を含めることはできますか? –

+1

投稿を編集して、テーブル構造とサンプルデータを含めてください。 –

+1

また、現在の日付までにフィルタリングする日付が表示されません。これは、これらのテーブルが現在の日レコードのみを保持していることを意味します –

答えて

0

選択合計(はbookcount)株式( セレクト名、tblinventory 連合 から1はbookcountからbooknameFK名を選択します。返却された場合は返却されます。= 1なら-1、それ以外はtbldisbursementのBookCountとして終了します。連合は、booknameFK名を選択し -1はbookcountを tblmissinglostから)T

これは、あなたの今のように在庫冊の合計数を提供します。

関連する問題