我有一個表,其中包含不同類型的度量,使用id_measure_type
來標識它們。我需要做一個SELECT,在該SELECT中我檢索所有期間的總和措施,並且每個單元(id_unit
)butif一些措施是空的檢索另一個等等。如果爲空,則按順序檢索不同的值
措施按日期,單位和小時計。這是我的表內容摘要:
id_unit dateBid hour id_measure_type measure 252 05/22/2013 11 6 500 252 05/22/2013 11 4 250 252 05/22/2013 11 1 300 107 05/22/2013 11 4 773 107 05/22/2013 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
所有輸入數據範圍和順序得到「最佳」測量類型:首先是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或失蹤的小時值。我需要每個可能的小時都在「總和」中,從「最好」的可能類型的度量中。
嗯,我的意思是,第二單元上有6類的任何措施,但可能不是很清楚。不會有'NULL'值,只有0個值或缺失值。我的不好,編輯我的問題澄清。 – SysDragon