0

テーブル内のすべての車の平均燃料消費量を計算したいと考えています。、、フィールドを持つspendforfuelテーブルがあります。走行距離フィールドは現在の走行距離です。数量は、現在の走行距離と最後に検出された走行距離の間で消費されたリットルです。IdCarOdometerQuantity

これが私の式です:

100 / ( (MAX(Odometer) - MIN(Odometer)) / (SUM(Quantity) - FIRST(Quantity) ) ) 

これが私がしたことです:

$q = $this->db->select()
                ->from(array('s1' => 'spendforfuel'), array('fuel_consumption' => '100 / ( s2.odometer_sum / ( s3.quantity_sum - s4.first_quantity ) )'))
                ->joinLeft(array('s2' => 'spendforfuel'), 's2.IdCar = s1.IdCar', array('odometer_sum' => 'MAX(s2.Odometer) - MIN(s2.Odometer)'))
                ->joinLeft(array('s3' => 'spendforfuel'), 's3.IdCar = s1.IdCar', array('quantity_sum' => 'SUM(s3.Quantity)'))
                ->joinLeft(array('s4' => 'spendforfuel'), 's4.IdCar = s1.IdCar', array('first_quantity' => 's4.Quantity'))
                ->where('s4.Odometer > ?', 0)
                ->limit('1 ASC')
                ->group('s1.CarId')
                ->where('s1.CarId = ?', 76);

結合をまったく使用する必要があるかどうかはわかりません。何か案は?

4

0 に答える 0