Красноречивый запрос упрощения/объединенияPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Красноречивый запрос упрощения/объединения

Сообщение Anonymous »

Я пытаюсь упростить следующий запрос. У меня есть счетчик и отношение (+ или -), и я хотел бы суммировать диапазоны дат на основе критериев счетчика. Положительные счетчики следует суммировать, а отрицательные вычитать из суммы. Как показано ниже, я разделил массив счетчиков на два массива ($meter_plus, $meter_minus) только с идентификаторами, оба для значений суммы, но $meter_minus следует вычесть.

// Изменить: получение счетчиков

Код: Выделить всё

$begin = new \DateTime($from);
$end = new \DateTime($to);
$end = $end->modify('+1 day');
// find points and meters by group
$grouping = App\Grouping::with('points.meters')->find($group_id);
$meter_plus = [];
$meter_minus = [];
// each group has one-to-many points, each point has one-to-many meters
foreach($grouping->points as $point) {
foreach($point->meters as $meter) {
if($meter->Relation == '+') {
array_push($meter_plus, $meter);
} else {
array_push($meter_minus, $meter);
}
}
}
// Edit2: отношение точки к метру

Код: Выделить всё

public function meters()
{
return $this->belongsToMany('App\EnergyMeter', 'meteringpoint_energymeter_relation', 'point_id', 'meter_id')
->whereHas('users', function ($q) {
$q->where('UserID', Auth::id());
})
->where('Deleted', 0)
->select('*', 'meteringpoint_energymeter_relation.Relation')
->orderBy('EMNumber');
}
--

Код: Выделить всё

$plus = Data::selectRaw('sum(values) as data')
->where('PointOfTime', '>', $begin->format('U'))
->where('PointOfTime', '', $begin->format('U'))
->where('PointOfTime', '

Подробнее здесь: [url]https://stackoverflow.com/questions/28696875/eloquent-simplify-combine-query[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»