小弟还是学生 数据库学的不好 写课程设计的时候遇到一个问题A表 有studentid bookid amount字段 分别代表学号 书号 和数量 指的是某学生需要某书的数量
B表 有bookid stock 指的是书的库存量
现在想知道每本书的缺书量 就是将A表中相同bookid的书的amount加起来然后如果大于B表中该书的stock 就相减然后得出结果
请教这样一条SQL 应该不难的但就是写不对 我用的是MYSQL 5.5 先谢谢了
B表 有bookid stock 指的是书的库存量
现在想知道每本书的缺书量 就是将A表中相同bookid的书的amount加起来然后如果大于B表中该书的stock 就相减然后得出结果
请教这样一条SQL 应该不难的但就是写不对 我用的是MYSQL 5.5 先谢谢了
from A,B
where A.bookid = B.bookid and (A.amount-B.stock)>0;
from (
select bookid,sum(amount) as total
from A表
group by bookid
) u , B表 v
where u.bookid=v.bookid
and u.total>v.stock
from (
select bookid,sum(amount) as total from A表 group by bookid ) a1 inner join B表 b1 on a1.bookid=b1.bookid
select a.bookid, case when a.total>b.stock then a.total-b.stock else 0 end as less_number
from
(
select bookid, sum(ifnull(amount,0)) as total
from A表
group by bookid
)a inner join B表 b
on a.bookid=b.bookid