Как правильно выбрать данные за год из процедуры?

Добрый день! Подскажите, как правильно выбрать отчетные данные за год, не нагружать сервер и построить график в Yii2? Моя процедура сильно тормозит((
$year = '2018'; // todo: get $year
            $records = [];
            for ($i = 1; $i <= 12; $i++) {
                $m = $i < 10 ? "0{$i}" : $i;
                $firstDay = date("Y-{$m}-01 00:00:00", strtotime("{$year}-{$m}-01"));
                $lastDay = date("Y-{$m}-t 23:59:59", strtotime("{$year}-{$m}-01"));

                $command1 = Yii::$app->db->createCommand("EXEC sp_GetRecipientPaymentsGroupedByServices @user = :p_user, @sd= :p_start, @ed= :p_end");
                $command1->bindParam(":p_user", $user, PDO::PARAM_INT);
                $command1->bindParam(":p_start", $firstDay, PDO::PARAM_STR);
                $command1->bindParam(":p_end", $lastDay, PDO::PARAM_STR);
                $records[] = $command1->queryAll();
            }
  • Вопрос задан
  • 61 просмотр
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar
Учим yii: https://youtu.be/-WRMlGHLgRg
Подскажите, как правильно выбрать

Убрать цикл, как минимум убрать из цикла запрос, что бы 1 запрос был, а не 12.

А при чем тут yii? Тут вопрос в больше в плоскости sql (msSql) или на крайний случай php, я так понимаю сложность в построении запроса, а не в методах yii, которые при этом Вы используете.
Не силен в msSql, но уверен что выбрать год можно без перебирания в цикле месяцев: https://yandex.ru/search/?text=ms%20sql%20%D0%B2%D...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы