2016-03-16 45 views
6

我有三個表tblinventory,tbldisbursement,tblmissinglost。我想在扣除當天的支出和回報後計算書籍的總庫存量。用於計算圖書館庫存的Mysql查詢

select bn.No_of_books_procured 
    - (count(mis.Unr_ret_donated_discareded)) 
    - (count(case when dis.dis_disbursed_return = 1 
        then dis.dis_disbursed_return end))as Stock 
    from tbl_inventorylibbooks bn 
right 
    join tbl_limgt_booksmissing_lost_adjust mis 
    on mis.Book_Name_missingbk = bn.Id_inventory 
    left 
    join tbllibmange_disbursement dis 
    on dis.dis_book_name_fk_id = bn.Id_inventory 
where bn.Id_inventory = 14 

在幾項我得到正確答案和其他結果條目查詢顯示錯誤的答案。你能否爲此提供解決方案?

tblinventory

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

考慮採購= 10

tbldisbursement

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

其中1 =已支付和0 =返回總書籍

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

SELECT SUM(bookcount後)股票從( 選擇名稱,從tblinventory 聯盟 1個bookcount後select booknameFK Name,Case when disbursedORreturned = 1 then -1 else 1 end as BookCount from tbldisbursement 聯盟 選擇booknameFK名稱,-1從tblmissinglost bookcount後)筆

這會給你的書籍總數庫存截至目前。