Codeigniter - Показать номер с условиями

0

У меня есть Payment Table. В этой таблице платежей есть paymentCusId(It is Customer Id), paymentCredit и paymentCredit и paymentDebit Д. Как я могу показать, если баланс клиентов составляет менее 50 евро, я хочу показать, сколько клиентов балансирует менее 50 евро.

Например, 5 клиентов балансируют менее 50.

Могу ли я решить это с помощью SQL-запроса или условий php?

Код ниже:

$this->db->select('payment.paymentCusId, sum(paymentCredit) - sum(paymentDebit)');
$this->db->from('payment');
$this->db->where('sum(paymentCredit) - sum(paymentDebit) <', 50);

$query_debit =  $this->db->get();

$number = $query_debit->num_rows();

echo $number;

Этот код не работает. Что я могу сделать, чтобы показать количество клиентов менее 50 евро?

  • 0
    кто-нибудь ответит на это?
  • 0
    у вас есть поле таблицы, в котором ведется учет баланса клиентов?
Показать ещё 1 комментарий
Теги:
codeigniter
sum

1 ответ

0
Лучший ответ

Запрос, который вы пытаетесь выполнить, имеет две ошибки.

1 - Для того, чтобы вы выполняли функции, которые должны быть объединены, вам нужно сгруппировать результат, используя GROUP BY

2 - Функции агрегации в предложении WHERE не работают, вам нужно поместить его в предложение having.

Для вашего случая правильный запрос:

$this->db->select('payment.paymentCusId, sum(paymentCredit) - sum(paymentDebit)');
$this->db->from('payment');
$this->db->group_by('payment.paymentCusId');
$this->db->having('sum(paymentCredit) - sum(paymentDebit) <', 50);

$query_debit = $this->db->get();

$number = $query_debit->num_rows();

echo $number;

Для получения дополнительной информации о построителе запросов codeigniter проверьте их документацию

Хороший способ выяснить, правильно ли ваш запрос, прежде чем пытаться получить результаты или num_rows, и т.д., Это проверить, что он имеет ошибку:

    $error = $this->db->error();
    if($error) {
       echo $error['message'];
       echo $error['code'];
    }
  • 0
    Это работает лучше.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню