【问题标题】:Mysql query for calculating stock of books in libraryMysql查询计算图书馆藏书量
【发布时间】:2016-07-02 08:22:58
【问题描述】:

我有三个表 tblinventory、tbldisbursement、tblmissinglost。我想计算当日扣除支出和退货后的图书总存量。

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

tbl支付

**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

我收到重复的条目

【问题讨论】:

  • 你能包含当前和期望的输出吗?
  • 请编辑您的帖子以包含表格结构和示例数据。
  • 另外,我没有看到要按当天过滤的日期。这意味着这些表只保存当天的记录?
  • 当您在其他一张表中多次出现同一本书时,通常会发生重复。您是否可以在 tbldisbursement 中为同一本书多次付款?
  • 是的,但是书的 ID 会有所不同

标签: mysql


【解决方案1】:

从 ( 从 tblinventory 中选择 Name , 1 BookCount 联盟 select booknameFK Name , case when disbursedORreturned=1 then -1 else 1 end as BookCount from tbldisbursement 联盟 select booknameFK Name , -1 BookCount from tblmissinglost )T

这将为您提供截至目前的库存图书总数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-20
    • 2010-12-30
    • 2011-07-22
    • 1970-01-01
    • 2016-02-05
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    相关资源
    最近更新 更多