2016-03-16 37 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后)笔

这会给你的书籍总数库存截至目前。