我已经查看了所有内容,但还没有找到一种智能的方法来处理这个问题,尽管我确信一个是可能的:
一张历史数据表有季度信息:
CREATE TABLE Quarterly (
unique_ID INT UNSIGNED NOT NULL,
date_posted DATE NOT NULL,
datasource TINYINT UNSIGNED NOT NULL,
data FLOAT NOT NULL,
PRIMARY KEY (unique_ID));
另一个历史数据表(非常大)包含每日信息:
CREATE TABLE Daily (
unique_ID INT UNSIGNED NOT NULL,
date_posted DATE NOT NULL,
datasource TINYINT UNSIGNED NOT NULL,
data FLOAT NOT NULL,
qtr_ID INT UNSIGNED,
PRIMARY KEY (unique_ID));
qtr_ID 字段不是填充数据库的每日数据源的一部分 - 相反,我需要使用 Quarterly.unique_ID 行 ID 追溯填充 Daily 表中的 qtr_ID 字段,使用最近的季度数据该数据源的 Daily.date_posted。
例如,如果季度数据是
101 2009-03-31 1 4.5
102 2009-06-30 1 4.4
103 2009-03-31 2 7.6
104 2009-06-30 2 7.7
105 2009-09-30 1 4.7
每天的数据是
1001 2009-07-14 1 3.5 ??
1002 2009-07-15 1 3.4 &&
1003 2009-07-14 2 2.3 ^^
那么我们会想要 ?? qtr_ID 字段将被分配为“102”作为该数据源在该日期的最近一个季度,&& 也将是“102”,而 ^^ 将是“104”。
挑战包括这两个表(尤其是每日表)实际上都非常大,它们不能被规范化以摆脱重复的日期或以其他方式优化,并且对于某些每日条目没有之前的季度条目。
我尝试了各种连接,使用 datediff (挑战是找到大于零的 datediff 的最小值)和其他尝试,但没有任何东西对我有用 - 通常我的语法在某个地方出现问题。欢迎任何想法 - 我将执行任何基本想法或概念并报告。