id_measure_type
それらを識別するためにを使用して、さまざまなタイプのメジャーを含むテーブルがあります。その期間と各単位 ( ) の合計をすべて取得する SELECT を実行する必要がありますが、id_unit
一部のメジャーが空の場合は、別のメジャーを取得するなどです。
測定値は、日付、単位、および時間ごとです。これは私のテーブルの要約です:
id_unit date入札時間 id_measure_type メジャー 252 2013/05/22 11 6 500 252 2013/05/22 11 4 250 252 2013/05/22 11 1 300 107 2013 年 5 月 22 日 11 4 773 107 2013/05/22 11 1 500 24 2013/05/22 11 6 0 24 2013/05/22 11 4 549 24 2013/05/22 11 1 150
すべての入力データ範囲に対して を作成し、SUM
次の順序で「最適な」メジャー タイプを取得する選択が必要です。0.id_measure_type = 6
id_measure_type = 4
id_measure_type = 1
タイプ 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
入力は、日付の範囲と単位です。1回の選択でそれを行う方法はありますか?
編集:
必要に応じて、すべての日付と時間を含むテーブル
もあるcalendar
ので、(1 時間ごとに取得するために) 結合するために使用できます。
編集:
値が になることはありませんNULL
。「空または 0」の場合、値が 0 または 1 時間欠落していることを意味します。「最良の」可能なタイプのメジャーから、可能なすべての時間がSUMに含まれている必要があります。