【问题标题】:Script that will take a field from one table and see if there has been an entry in another table containing that field从一个表中获取一个字段并查看另一个表中是否存在包含该字段的条目的脚本
【发布时间】:2021-04-27 07:51:01
【问题描述】:

我遇到了一个问题,我们正在监控上传到数据库中并在文件上传时间超过 10 分钟时发出警报。

但是,我们发现大多数警报都在发生,因为文件大小超过了 10 分钟才能上传。

所以我希望有人可以帮助我的是一个脚本,该脚本将从表 A 中获取 ID(每次上传唯一)并在第二个表中查找过去 10 分钟内包含 B 列中该 ID 的任何内容第二张桌子?

所以表 A,上传 ID 121212 创建 > 现在 - 10 分钟

在表 B 中,过去 10 分钟内是否有一个条目在 UploadFile 列中包含 121212。​​

如果否则返回正数,如果是则结束

我认为这是一项简单的任务,但在创建时却失败了

【问题讨论】:

  • 你看过JOIN语法和DATEADD吗?

标签: sql sql-server sql-server-2016


【解决方案1】:

您可以进行如下查询。在A's Created10 minutes from A's Created 之间使用INNER JOINUploadIDB's Created 的条件。

参考 - DATEADD (Transact-SQL)

IF EXISTS(SELECT 1 
            FROM A
            INNER JOIN B
                ON B.UploadFile LIKE CONCAT('%:', A.UploadID)
                    AND B.Created BETWEEN A.Created AND DATEADD(MINUTE, 10, A.Created)
            WHERE A.UploadID = 121212)
BEGIN
    RETURN 0;
END
ELSE
BEGIN
    RETURN 1;
END

【讨论】:

  • 非常感谢,我应该补充一点,表 a 中的 ID 只是表 B 中字段的一部分,所以在它之前总会有一个文件名或类似的东西,所以 uploadfile :121212 或约翰斯特斯特:121212。常量是最后的 ID,所以我尝试使用“like '%:121212'”进行链接
猜你喜欢
  • 1970-01-01
  • 2015-07-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多