让SQL Oracle Developer考虑LEFT OUTER JOIN中的小时

时间:2017-11-09 15:35:56

标签: sql oracle date join

我想加入三张桌子。前两个有许多记录和一个日期时间字段,格式为“YYYY / MM / DD HH:MM:SS AM / PM”,第三个表连接到另一个字段,只有16个记录。

表A

TIME_EFFECTIVE            DESCRIPTION    SOMEDATA
1998/01/11 12:00:00 AM    DescA          DataEntry
1998/01/11 11:00:00 AM    DescA          DataEntry

表B

HOUR                      DESCRIPTION    SOMEDATA
1998/01/11 12:00:00 AM    DescA          DataEntry
1998/01/11 11:00:00 AM    DescA          DataEntry

表C

DESCRIPTION    IMPORT
DescA          12
DescB          34

当我尝试加入以下公式中的三个

SELECT TableA.TIME_EFFECTIVE, TableB.SOMEDATA AS SomeName, TableC.IMPORT as imp 
FROM TableA 
LEFT OUTER JOIN TableB ON TableA.TIME_EFFECTICE = TableB.HOUR
LEFT OUTER JOIN TableC ON TableA.DESCRIPTION = TableC.DESCRIPTION
WHERE TIME_EFFECTIVE > '01/JAN/2017'
事情变得混乱,LEFT OUTER JOIN返回的行多于左表(TableA)中包含的行数。我不想要这个。我只希望连接匹配日期时间字段,其中TableA中的日期和小时与TableB中的日期和小时以及TableA和TableC之间的DESCRIPTION字段匹配。我有一种感觉这与Oracle SQL Developer的日期格式有关,但我不确定。 Oracle SQL开发人员将其设置为“DD / MMM / YY”格式,例如'01 / JAN / 17'。它是否考虑了加入时间或日期?

0 个答案:

没有答案