假设我在oracle数据库中有两个表 - 一个包含月度数据,另一个包含每日数据,例如,如下所示:Oracle - 按日期加入两个表,其中一个是每日,一个是每月
TblMonthlyData:
MonMatchingCol: MonDateCol: MonCol3: MonCol4:
a 01-31-2014 MonVal3a MonVal4a
b 01-31-2014 MonVal3b MonVal4b
a 12-31-2013 MonVal3c MonVal4c
b 12-31-2013 MonVal3d MonVal4d
a 11-30-2013 MonVal3e MonVal4e
b 11-30-2013 MonVal3f MonVal4f
TblDailyData:
DlyMatchingCol DlyDateCol DlyCol3 DlyCol4
a 01-14-2014 DlyVal3a DlyVal4a
b 01-14-2014 DlyVal3b DlyVal4b
a 01-15-2014 DlyVal3c DlyVal4c
b 01-15-2014 DlyVal3d DlyVal4d
a 01-16-2014 DlyVal3e DlyVal4e
b 01-16-2014 DlyVal3f DlyVal4f
...
a 02-01-2014 DlyVal3g DlyVal4g
b 02-01-2014 DlyVal3h DlyVal4h
a 02-02-2014 DlyVal3i DlyVal4i
b 02-02-2014 DlyVal3j DlyVal4j
和我有FO llowing查询:
SELECT
Daily.DlyDateCol, Daily.DlyMatchingCol, Daily.DlyCol3, Daily.DlyCol4, Monthly.MonCol3, Monthly.MonCol4
FROM
TblDailyData Daily,
TblMonthlyData Monthly
WHERE
Daily.DlyDateCol = '01-14-2014'
AND
Monthly.MonDateCol = (SELECT MAX(MonDateCol)
FROM TblMonthlyData
WHERE TblMonthlyData.MonDateCol <= '01-14-2014')
AND
Daily.DlyMatchingCol = Monthly.MonMatchingCol
基本上,我在我的月度表在我的日常表每天的数据和月数据,他们有一列将两者结合起来,我想获取最新的月度数据向上那么我们从日常表中拉出来。
所以,这个查询的结果将是:
DlyDateCol: DlyMatchingCol: DlyCol3: DlyCol4: MonCol3: MonCol4:
01-14-2014 a DlyVal3a DlyVal4a MonVal3c MonVal4c
01-14-2014 b DlyVal3b DlyVal4b MonVal3d MonVal4d
现在,这个查询的伟大工程,但现在我需要扩展它,这样我可以在拉多天的数据时间(所以不再仅仅为01-14-2014
,但现在为01-15-2014 to 02-10-2014
)?
该查询将如下的结果如下:
DlyDateCol: DlyMatchingCol: DlyCol3: DlyCol4: MonCol3: MonCol4:
01-15-2014 a DlyVal3c DlyVal4c MonVal3c MonVal4c
01-15-2014 b DlyVal3d DlyVal4d MonVal3d MonVal4d
01-16-2014 a DlyVal3e DlyVal4e MonVal3c MonVal4c
01-16-2014 b DlyVal3f DlyVal4f MonVal3d MonVal4d
...
02-01-2014 a DlyVal3g DlyVal4g MonVal3a MonVal4a
02-01-2014 b DlyVal3h DlyVal4h MonVal3b MonVal4b
02-02-2014 a DlyVal3i DlyVal4i MonVal3a MonVal4a
02-02-2014 b DlyVal3j DlyVal4j MonVal3b MonVal4b
...
所以,基本上,每天的数据每天都会变化,但月度数据会随着几个月的变化而变化。
我希望这是有道理的。
非常感谢您的帮助!
你能提供一些样本数据和想要的结果吗? –
如果你有条件'Daily.DlyMatchingCol = Monthly.MonMatchingCol',为什么你需要选择'Monthly.MonDateCol'值的子查询? –
@GordonLinoff,我在假样本数据中添加了 - 我很抱歉没有这样做,这只是很多类型,我希望我很好地解释自己...我希望现在有道理.... –