我有一个每天在数据馈送上运行的进程,并更新我们库存数据库中存在于数据馈送中的所有项目的 last_update_time (日期时间字段)。我遇到的问题是,当一个项目从数据源中删除时,它的 last_updated_time 不再由我的进程在数据库中更新。从数据馈送中删除项目后,只要存在与该项目共享相同 item_group_id (nvarchar) 的项目,我仍然希望更新其 last_update_time。
即,如果数据库中确实存在一个项目,其 last_updated_time 已由我的进程更新,并且确实与数据馈送中不再存在的其他项目共享 item_group_id,我希望将它们的 last_update_time 设置为任何项目的最新 last_update_time共享该 item_group_id。
出于这个问题的目的,我们正在讨论单个表中的所有列(实际查询更复杂,但为了清楚起见,我已经减少了)。
所以,首先它看起来像:
ItemID GroupID Last_Updated_time
----------------------------------------
1 345 5/26/2020 12:00pm
2 345 4/25/2020 12:00pm
3 234 4/25/2020 12:00pm
然后
1 345 5/26/2020 12:00pm
2 345 5/26/2020 12:00pm
3 234 4/25/2020 12:00pm
我想我也许可以在我的更新语句中做一个嵌入式查询,如这里的答案之一所示如何用多行更新 1 行?,但我正在努力找出确保我只更新具有相同 GroupID 的项目的 last_updated_time 字段的语法。
任何帮助将不胜感激。在 C# 应用程序中使用 SQL Server Express。