算术在sql中的更新语句中

时间:2014-11-17 01:44:45

标签: mysql sql sql-update

我真的无法绕过这个更新的sql语句。

我有一个复制表和租借表的以下架构:

复制(   copy_id,   movie_id,   branch_id,   主键(copy_id));

租借(   顾客ID,   copy_id,   过时的,   归期 ,   主键(customer_id,copy_id,outdate));

同一部电影会有多个副本。对于单个movie_id,我们可以有多个copy_id。 电影的每个副本都具有全局唯一的copy_id。因此,2部不同电影的副本不能具有相同的copy_id。

有多个分支都有电影的副本,当然copy_id也是唯一的。

如果多次租借,同一部电影和副本肯定会多次出租。

我需要写一个更新声明,比如说 - 我们在一个分支机构有10个电影拷贝,时间跨度为30天,因此在300个租赁日期(30天* 10个拷贝)中,副本需要出租至少290个租赁日。如果这是真的,那么我需要在该分支添加该特定电影的另一个副本。

我尽力以最好的方式解释这个问题。简而言之,如果电影在90%的时间在分支机构出租,我需要添加一份副本。

1 个答案:

答案 0 :(得分:1)

通过branch_id,movie_id

从副本组中选择branch_id,movie_id,count(*)
  

此查询是分支影片计数。也许你已经有了分支表,使用它。

SELECT DATE_FORMAT(outdate,'%Y%m'),branch_id,movie_id,SUM(DATEDIFF(returnsndate,outdate))FROM copy AS c INNER JOIN rental AS r ON c.copy_id = r.copy_id GROUP BY DATE_FORMAT(outdate,'%Y%m'),c.branch_id,c.movi​​e_id

  

此查询是每个分支和电影的每月租借时间。

该查询是计算的基本查询。你可以像

那样制作逻辑

如果每月租赁时间+新租赁时间>分支机构租赁限额

(  添加新的复制请求 )