我的表跟踪对值不变的值的更改。
例如,如果资源1和2分别以100和50的值开始,那么它可能是这样的 - 然后资源1在第5天(but resource 2 is unchanged)
增加到110,然后资源2在第7天变为60
resource_id | date_id | value
------------+---------+------
1 | 1 | 100
2 | 1 | 50
1 | 5 | 110
2 | 7 | 60
是否有一个简单的查询来获取特定日期的资源价值?类似的东西:
SELECT resource_id, date_id, value FROM Resources WHERE ??? -- day = 6
resource_id | date_id | value
------------+---------+------
1 | 5 | 110
2 | 1 | 50
注意: 我不希望插值 - 只是最后一个设定值。
答案 0 :(得分:3)
我认为这应该有效:
SELECT resource_id,
date_id,
value
FROM resources,
(SELECT resource_id,
Max(date_id) AS date_id
FROM resources
WHERE date_id <= 6
GROUP BY resource_id ) temp
WHERE resources.resource_id = temp.resource_id
AND temp.date_id = resources.date_id