私は、booked_start、booked_stop、used_start、used_stop、invoice_start、invoice_stop という 6 つの列を持つ予約テーブルを持っています。値は float です。値が 0 を超える行の合計を取得したいのですが、used_stop - used_start なども計算したいと考えています。
現在、これで作業しています:
SELECT
room,
IF( booked_stop_time > 0, sum(booked_stop_time - booked_start_time), 0 ) as booked,
IF( used_stop_time > 0, sum(used_stop_time - used_start_time), 0 ) as used,
IF( invoice_stop_time > 0, sum(invoice_stop_time - invoice_start_time), 0 ) as invoice
FROM bookings
問題は、expr1 が false を返した場合、合計がリセットされることです。行の値が0を超える場合にのみ合計に追加したい.
私もケースを使ってみましたが、うまくいきませんでした。たぶん、代わりにphpで計算する必要がありますか?