0
比方说,我有T1:分配值
id date attribute
1 2017-04-20 t
1 2017-04-19 t
1 2017-04-18 t
2 2017-04-20 t
2 2017-04-19 f
而且我也有T2:
id date date_end attribute
1 2017-04-19 2017-04-25 f
我想要的是得到一个新的表,这将包含来自T1的数据,但如果两个表中都有匹配的ID,则将T2中的属性值替换为T2中定义的日期范围内的属性值。
结果是这样的:
id date attribute
1 2017-04-20 f
1 2017-04-19 f
1 2017-04-18 t
2 2017-04-20 t
2 2017-04-19 f
我已经想出如下:
SELECT t1.id, t1.date,
CASE WHEN max(T2.id) IS NULL THEN T1.attribute ELSE T2.attribute END
FROM T1
LEFT JOIN T2 using (id)
无法弄清楚如何改变属性的特定范围。 任何帮助表示赞赏!
令人惊叹!太简单。谢谢! – hamsy