根据图书馆规定,借阅期限是30天,超过30天需要按书籍售价的1%每天收取罚款. 查询dzzh和罚款(fk列) (提示:该查询涉及到两个数据表borrow和book)
时间: 2024-11-13 09:42:13 浏览: 3
DZZH.style
为了查询DZZH(可能是读者姓名缩写)的借阅记录以及对应的罚款情况,假设`borrow`表包含读者信息、书籍ID(book_id)、借阅日期(borrow_date)等字段,而`book`表包含了书籍的售价(price),你可以使用以下SQL查询:
```sql
SELECT
d.DZBH AS DZZH,
b.book_name,
b.price,
COALESCE(SUM(b.price * 0.01 * (DATEDIFF('day', borrow.borrow_date, GETDATE()) + 1)), 0) AS fk -- 计算总罚款,如果借期未超过30天则返回0
FROM
borrow borrow
JOIN
book book ON borrow.book_id = book.book_id
LEFT JOIN
(SELECT * FROM borrow WHERE DATEDIFF('day', borrow_date, GETDATE()) > 30) temp ON borrow.DZBH = temp.DZBH -- 筛选出已超期的记录
WHERE
borrow.DZBH = 'dzzh' -- 替换'dzzh'为你想查询的具体读者编号
GROUP BY
d.DZBH, b.book_name, b.price;
```
这个查询首先通过JOIN将`borrow`和`book`表连接起来,然后筛选出DZZH的借阅记录,并计算超出30天部分的罚款金额。`COALESCE`函数用于处理可能出现的借期未超过30天的情况。
阅读全文