Join DB2面临困难
我有以下情况(简化): 2个BiTemp表Join DB2面临困难,join,db2,bi-temporal,Join,Db2,Bi Temporal,我有以下情况(简化): 2个BiTemp表 基本CDATA(id、btmp\U tsd、名称、prename) 扩展数据(id、btmp_tsd、basicid、代码名、代码值) 在extendeddata中,一个基本CDATA可以有多个条目,每个条目都有不同的代码名和值 我必须创建一个SQL来选择自指定时间以来已更改的所有行。对于基本CDATA表,这相对简单: SELECT ID, BTMP_TSD, NAME, PRENAME FROM BASICDATA BD WHERE BTMP_T
- 基本CDATA(id、btmp\U tsd、名称、prename)
- 扩展数据(id、btmp_tsd、basicid、代码名、代码值)
SELECT ID, BTMP_TSD, NAME, PRENAME
FROM BASICDATA BD
WHERE BTMP_TSD =
(SELECT MAX(BTMP_TSD)
FROM BASICDATA BD2
WHERE BD2.ID = BD.PRTNR_ID
AND BD2.BTMP_TSD > :MINTSD
AND BD2.BTMP_TSD <= :MAXTSD
)
ORDER BY ID
WITH UR
好的,现在有了这些条目,我想要所有自2013-10-01以来发生任何变化的userid
User1(因为extendeddata超级管理员发生了更改)
User2(更改了名称,我希望他更加强硬,因为他在extendeddata表中没有条目)
not User3(他在两个表上都有一个条目,但不在指定的范围内)
下面的查询应该执行您想要的操作
select *
from basicdata b left outer join extendeddata e on b.id=e.basicid
where b.btmp_tsd >= '2013-10-01'
or e.btmp_tsd >= '2013-10-01'
免责声明:我没有测试sql。所以语法可能不是100%完美。你能添加一些示例数据和预期结果吗?我添加了一些示例数据,我预期问题是,由于表是双时态的,这不会像这样容易
select *
from basicdata b left outer join extendeddata e on b.id=e.basicid
where b.btmp_tsd >= '2013-10-01'
or e.btmp_tsd >= '2013-10-01'