永发信息网

sql语句查询(图书借阅)

答案:1  悬赏:40  手机版
解决时间 2021-06-09 04:14
  • 提问者网友:未信
  • 2021-06-08 14:18

数据库,BOOK,

表1:stuent ; 字段 stuID (学生编号), stuName(姓名), major(专业)

表2:book ;字段 Bid (图书编号) title (书名),autor(作者)

表3:borrow:字段borrowID(结束编号),stuID(学生编号),BID(图书编号), T_time (结束日期),B_time(还书日期)

题目:

1,查询所有借过书的学生编号,姓名,专业,?

2,借书但是未归还的学生姓名及该生未归还书的图书数量?

3,比如书名是《天龙八部》,请分别查询借过它的人的姓名,借书日期,看了多少天,要考虑若某人借了但是没还,则在看了多久一栏填上(尚未归还)

可以每个题目有多种查询方案,最好有,

请详细分析你的思路,以及哪一种比较优越,在查询性能方面或其他方面比较,

另外请兄台谨慎提交你的答案,不要误人子弟!

请装的走远点,装B遭雷劈,害人害己!

有劳各位解答!多谢!

最佳答案
  • 五星知识达人网友:轻熟杀无赦
  • 2021-06-08 15:56

1,查询所有借过书的学生编号,姓名,专业,?


SELECt DISTINCT borrow.stuid, student.major
FROM borrow LEFT OUTER JOIN
student ON borrow.stuid = student.stuID


2,借书但是未归还的学生姓名及该生未归还书的图书数量?


SELECt student.stuName, COUNT(1) AS Expr1
FROM borrow LEFT OUTER JOIN
student ON student.stuID = borrow.stuid
WHERe (borrow.b_time IS NULL)
GROUP BY student.stuName


3,比如书名是《天龙八部》,请分别查询借过它的人的姓名,借书日期,看了多少天,要考虑若某人借了但是没还,则在看了多久一栏填上(尚未归还)


SELECt student.stuName, borrow.t_time, CASE WHEN borrow.b_time IS NULL THEN '尚未归还' ELSE cast(datediff(day,t_time,b_time) as varchar) END AS Expr1
FROM borrow LEFT OUTER JOIN
student ON student.stuID = borrow.stuid LEFT OUTER JOIN
book ON borrow.bid = book.Bid
WHERe (book.title = '天龙八部')

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯