我想从范围内的表中选择值。像这样的东西:
SELECT
date_values.date_from,
date_values.date_to,
sum(values.value)
FROM values
inner join date_values on values.id_date = date_values.id
inner join date_units on date_values.id_unit = date_units.id
WHERE
date_values.date_from >= '14.1.2012' AND
date_values.date_to <= '30.1.2012' AND
date_units.id = 4
GROUP BY
date_values.date_from,
date_values.date_to
ORDER BY
date_values.date_from,
date_values.date_to;
但是这个查询只给我返回日期范围,任何值在哪里。像这样:
14.01.12 15.01.12 66
15.01.12 16.01.12 4
17.01.12 18.01.12 8
...etc
(这里缺少 16.01.12 到 17.01.12)
但我也想选择缺失值,如下所示:
14.01.12 15.01.12 66
15.01.12 16.01.12 4
16.01.12 17.01.12 0
17.01.12 18.01.12 8
...etc
我不能使用 PL/SQL,如果您能建议更通用的解决方案,我可以将其扩展到小时、月、年;会很棒。