我真的无法理解这个更新sql语句。
我有以下复印表和租赁表架构:
复制 ( 副本 ID , 电影 ID , 分支 ID , 主键(copy_id));
租赁 ( 客户ID, 副本 ID , 过时的, 归期 , 主键(customer_id、copy_id、outdate));
同一部电影会有多个副本。对于单个 movie_id,我们可以有多个 copy_id。 电影的每个副本都有一个全局唯一的 copy_id。因此,两部不同电影的副本不能具有相同的 copy_id。
有多个分支拥有电影的副本,并且 copy_id 当然是唯一的。
如果已租借多次,同一部电影和副本肯定会出现在多次租借中。
我需要编写一份更新声明,例如 - 假设我们在分支机构有 10 部电影副本,时间跨度为 30 天,因此在 300 个租赁天(30 天 * 10 部副本)中,副本需要出租时间至少为 290 天。如果这是真的,那么我需要在该分支添加该特定电影的另一个副本。
我试图以尽可能最好的方式解释这个问题。简而言之,如果电影 90% 的时间是在分店出租的,我需要添加一份副本。
最佳答案
按branch_id、movie_id从副本组中选择branch_id、movie_id、count(*)
this query is branchs movie count. maybe you already have branch table, use that.
SELECT DATE_FORMAT(outdate, '%Y%m'),branch_id, movie_id, SUM(DATEDIFF(returndate , outdate)) FROM copy AS c INNER JOINrent AS r ON c.copy_id = r.copy_id GROUP BY DATE_FORMAT(outdate, '%Y%m'),c.branch_id, c.movie_id
this query is monthly rental time per branch and movie.
该查询是计算的基本查询。你可以做出像
这样的逻辑如果每月租赁时间+新租赁时间>分支机构租赁限制
( 添加新的复制请求 )
关于mysql - sql中更新语句中的算术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26964293/