リソースの予約のデータベース (postgres 9.3 で実行) があります。このデータベースには、他の値の横に予約の開始時刻と終了時刻が含まれる予約テーブルが含まれています (としてtimestamp with time zone
)
ここで、これらすべての予約を合計した合計時間の観点から、特定の会社が現在アクティブにしている予約の量を知る必要があります。
私は仕事をする次のクエリをまとめました:
SELECT EXTRACT(EPOCH FROM Sum(stop-start))/3600 AS total
FROM (reservations JOIN partners ON partner = email)
WHERE stop > now() AND company = 'givencompany'
これは、指定された会社が将来予約を持っている場合に非常にうまく機能します。私が経験している問題は、会社が予約を持っていない場合、クエリは実際には行を返しますが、列は空ですが、行をまったく返さない(または何も複雑でない場合total
は行を含む)ことです。0
その場合。
これは、データベースに別の変更を加えることで実現できますか?それともSELECT
、消費するアプリケーションがnull
毎回チェックする必要がありますか?
私の質問が些細なことで申し訳ありませんが、私はデータベースにまったく慣れていません
編集
0
を使用して戻り値をデフォルトにできることがわかりましたがCOALESCE
、行が返されない場合はそれを好むでしょう