我有一张带有不同类型度量的表格,使用 aid_measure_type
来识别它们。我需要做一个 SELECT ,在其中我检索所有该期间和每个单位 ( id_unit
) 的度量值,但如果某个度量值是空的,则检索另一个度量值,依此类推。
这些措施是按日期、单位和小时计算的。这是我的表的摘要:
id_unit dateBid hour id_measure_type 测量 252 2013 年 5 月 22 日 11 6 500 252 2013 年 5 月 22 日 11 4 250 252 2013 年 5 月 22 日 11 1 300 107 2013 年 5 月 22 日 11 4 773 107 2013 年 5 月 22 日 11 1 500 24 05/22/2013 11 6 0 24 05/22/2013 11 4 549 24 05/22/2013 11 1 150
我需要一个SUM
为所有输入数据范围创建 a 并按以下顺序获取“最佳”度量类型的选择:首先是id_measure_type = 6
,如果它为空或 0则为id_measure_type = 4
,并且在相同条件下,然后是id_measure_type = 1
,如果没有则0。
只要有类型 6 的所有度量,此选择就是正确的:
SELECT id_unit, SUM(measure) AS measure
FROM UNIT_MEASURES
WHERE dateBid BETWEEN '03/23/2013' AND '03/24/2013' AND id_unit IN (325, 326)
AND id_measure_type = 6 GROUP BY id_unit
输入是日期范围和单位。有一种方法可以在一次选择中完成吗?
编辑:
我还有一个calendar
包含每个日期和小时的表,因此如果需要,它可以用来与它进行连接(检索每个小时)。
编辑:
这些值永远不会是NULL
,当“空或 0”时,我的意思是 0 或缺失一小时的值。我需要每个可能的小时都在总和中,来自“最佳”可能的度量类型。