Join DB2面临困难

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

我有以下情况(简化):

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_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'