mysql查询图书复本量_SQL语句在图书管理数据库中实现下列查询S1:在借阅表中查询哪些 爱问知识人...

建表

TA , 藏书表: 书ID,书号,书名,ISBN号,书价值,出版社,册数,复本量

TB , 读者表: 读者ID, 读者姓名,借书证号

TC , 借阅表:序号,日期,读者ID,书ID,归还状态(0未归还,1已归还)

h1: SELECT TA。

[书号],TA。[书名],COUNT(1) AS '借出本数'

FROM TA ,TC

WHERE TA。[书ID] = TC。[书ID]

GROUP BY TA。[书号],TA。[书名]

ORDER BY 3 DESC

h2: SELECT SUM([册数]) AS '总册数'

FROM TA

h3: SELECT SUM([册数] * [书价值]) AS '总值金额'

FROM TA

h4: SELECT TA。

[出版社],COUNT(DISTINCT(TA。[书ID]))

FROM TC,TA

WHERE TA。[书ID] = TC。[书ID] AND TC。[归还状态] = 0

GROUP BY TA。[出版社]

h5: SELECT TOP 1 TB。

[借书证号],TB。[姓名],SUM(TA。[书价值]) AS 总价值

FROM TA,TB,TC

WHERE TA。[书ID] = TC。[书ID] AND TB。[读者ID] = TC。[读者ID]

GROUP BY TB。

[借书证号],TB。[姓名]

ORDER BY 3 DESC

注:此处TOP N 可以修改,意义为按总值金额降序拍前N位

h6: 如有单独库存表可用库存表数值,如无库存表,库存取得用:藏书表册数 减去 已借出未归还数;

SELECT TA。

[ISBN号],TA。[书名]

FROM TA,(SELECT TC。[书ID],COUNT(1) AS '未还数' FROM TC WHERE [归还状态] = 0 GROUP BY TC。[书ID]) TX

WHERE TA。

[书ID] = TX。[书ID]

AND TA。[册数] - TX。[未还数] < TA。[复本量]

AND TA。[书ID] NOT EXISTS (SELECT 1 FROM TC WHERE TA。[书ID] = TC。

[书ID])

SELECT TA。[ISBN号],TA。[书名]

FROM TA

WHERE TA。[册数] - TX。[未还数] < TA。[复本量]

AND TA。[书ID] NOT EXISTS (SELECT 1 FROM TC WHERE TA。

[书ID] = TC。[书ID]) 。

全部

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值