繁体   English   中英

根据另一个表中的行数将特定行更新为值

[英]Updating specific rows to values based on the count of rows in another table

我有一张桌子 RESERVED_BOOKINGS_OVERRIDDEN

booking_product_id          on_site_from_dt         on_site_to_dt            venue_id
     4               2021-08-07 16:00:00.000      2021-08-14 10:00:00.000        12
     4               2021-08-07 16:00:00.000      2021-08-10 10:00:00.000        12
     6               2021-08-02 16:00:00.000      2021-08-09 10:00:00.000        12

和另一个表 ALLOCATED_PRODUCTS

         Date                 booking_product_id        venue_id              ReservedQuant
2021-08-05 00:00:00.000        4                        12                      3   
2021-08-06 00:00:00.000        4                        12                      3   
2021-08-07 00:00:00.000        4                        12                      3   
2021-08-08 00:00:00.000        4                        12                      3   
2021-08-05 00:00:00.000        6                        12                      1   

现在我需要根据 RESERVED_BOOKINGS_OVERRIDDEN 中的行更新 ALLOCATED_PRODUCTS 表中的 ReservedQuant 列

ReservedQuant 必须减去 ALLOCATED_PRODUCTS.Date 在 RESERVED_BOOKINGS_OVERRIDDEN.on_site_from_dt 和 RESERVED_BOOKINGS_OVERRIDDEN.on_site_to_dt 和 ALLOCATED_PRODUCTS.booking_product_id = RESERVED_BOOKINGS_OVERRIDDEN.booking_product_id 中找到的行数。

这应该是更新后数据的state:

     Date                 booking_product_id        venue_id              ReservedQuant
2021-08-05 00:00:00.000        4                        12                      3   
2021-08-06 00:00:00.000        4                        12                      3   
2021-08-07 00:00:00.000        4                        12                      1   
2021-08-08 00:00:00.000        4                        12                      1   
2021-08-05 00:00:00.000        6                        12                      0   
update a set a.ReservedQuant=ReservedQuant-(select count(1) from RESERVED_BOOKINGS_OVERRIDDEN b where a.booking_product_id=b.booking_product_id
and a.date between cast(b.on_site_from_dt as date) and cast(b.on_site_to_dt as date)) 
from ALLOCATED_PRODUCTS a

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM