如果其中任何一个已更新,我如何返回一组完整的记录



我正在制作一个脚本,该脚本从数据库中获得了数据的增量更新。

我需要一些帮助,以获取两个连接表中包含的整个数据集(每秒表中的一个记录之一(至少一个(已更新;

到目前为止,我唯一能想到的是从以任何方式参与更改的第一个表中获取ID,然后在更通用的查询中使用这些ID作为过滤器。它有效,但它不是很漂亮,我觉得可以更好地优化解决方案。

这是一个示例的链接:

https://rextester.com/tlcia97116(无法打开SQL小提琴(。

上面的示例显示了两个选择的查询。第二个是我的解决方案,结果就是我要寻找的东西。换句话说 - "每当添加/更改表B中的一个记录之一时,请给我表A及其相关(加入(记录的记录。"

第一个查询是返回只有更新的行的集合,但是我需要所有的查询以稍后重新计算一些值,它们依赖于所有记录。

使用触发器的最好和最简单的处理方法。在第二个表中添加触发器,该表将在第一个表上推更改/调用更新。

在咨询了几个同事之后,我的解决方案似乎是我们必须采用的解决方案(主要是因为缺乏更好的解决方案(。

请求如下:

select * 
from Placements as p 
join PlacementCommissions as pc on p.PlacementId = pc.PlacementId
where p.PlacementId in (select distinct p2.PlacementId from Placements AS p2                  
                  JOIN PlacementCommissions AS pc2 ON p2.PlacementId = pc2.PlacementId
                        where ((pc2.TimeStamp >= @lastSuccessfullETLRun
                        AND pc2.TimeStamp < @startTimeBullhorn)
                           OR (p2.TimeStamp >= @lastSuccessfullETLRun
                           AND p2.TimeStamp < @startTimeBullhorn)))

最新更新