繁体   English   中英

如何检查不同的表并在 SQL 服务器中更新它

[英]How to check with different table and update it in SQL Server

我正在尝试编写一个符合这些规则的查询:

  • 从 Daily_Proc 表中读取记录(where CreatedDate = 06/06/2022 AND Status = Processed)
  • 使用“ MID ”和“ Source ”列值检查Lit_Hold_Err表中是否也存在任何特定记录。
  • 如果Lit_Hold_Err表中存在特定记录,则将 Daily_Proc表中的状态从“已处理”更新为“错误重试”。

我能够执行第一步和第二步,但不确定如何执行第 3 步。

SELECT * 
FROM Daily_Proc
WHERE CreatedDate > '06/06/2022 0:00:00'
  AND Status = 'Processed'
  AND (MID in (SELECT MID
               FROM Lit_Hold_Err)
  AND Source In(Select Source
                From Lit_Hold_Err))

Daily_Proc表:

抓住 来源 创建日期 地位
乙脑 杰力克 JELEEK@gmail.com 06/03/2022 新的
可可乐 KEKELO@gmail.com 06/06/2022 处理
齐克克 ZEKEKE@gmail.com 06/06/2022 处理

Lit_Hold_Err表:

抓住 来源 错误信息
可可乐 KEKELO@gmail.com “未找到

您可能希望使用JOIN操作构建UPDATE语句,该操作在MIDSource列上与两个表Daily_ProcLit_Hold_Err相匹配。 DailyProc.CreatedDateDailyProc.Status的其他条件可以位于WHERE语句内。

UPDATE Daily_Proc 
SET Status = 'Error-Retry'
FROM       Daily_Proc 
INNER JOIN Lit_Hold_Err
        ON Daily_Proc.MID = Lit_Hold_Err.MID
       AND Daily_Proc.Source = Lit_Hold_Err.Source
WHERE Daily_Proc.CreatedDate = '06/06/2022' 
  AND Daily_Proc.Status = 'Processed';

此处查看演示。

暂无
暂无

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

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