сумма с включением в активные записи - PullRequest
0 голосов
/ 25 сентября 2011

Привет, пожалуйста, терпите меня. Я очень плохо знаком с mysql / active records (все предыдущие проекты были только базовыми CRUD). Я пытаюсь объединить две таблицы, чтобы я мог сгенерировать таблицу своих счетов с промежуточной суммой (структура базы данных). на основании бамбуковой накладной)

в настоящее время пытается безуспешно (синтаксическая ошибка)

$this->db->select('invoice_number, dateIssued ');
$this->db->select('(SELECT SUM(amount * qty) FROM manage_invoice_items DISTINCT invoice_id) AS subtotal' , FALSE);
$this->db->from('manage_invoices');

$this->db->join('manage_invoice_items', 'manage_invoices.id = manage_invoice_items.invoice_id');
$this->db->where('client_id', $client_id);

$query = $this->db->get();
return $query->result();

с

$this->db->select('invoice_number, dateIssued');
$this->db->from('manage_invoices');

$this->db->join('manage_invoice_items', 'manage_invoices.id = manage_invoice_items.invoice_id');
$this->db->where('client_id', $client_id);

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

return $query->result();

Я получаю результаты для каждого элемента счета-фактуры (мне нужен один результат для каждого счета-фактуры с промежуточной суммой элементов счета-фактуры для этого номера счета-фактуры)

Надеюсь, что все отправляет, как я сказал, я не знаю много о mysql (даже ссылка на хороший учебник по объединению функций будет полезна.

Ответы [ 2 ]

2 голосов
/ 25 сентября 2011

Я лично не знаком с CodeIgniter / ActiveRecord, но, похоже, вам нужно сгруппировать записи с помощью функции GROUP BY.Я нашел эту ссылку , которая может быть полезной.Вы, вероятно, хотите использовать:

$this->db->select_sum("amount * qty");

и

$this->db->group_by("invoice_number");                               
0 голосов
/ 26 сентября 2011
    $this->db->select('invoice_number, dateIssued');
    $this->db->select('ROUND((SUM(amount * qty)), 2) AS subtotal', FALSE);
    $this->db->from('manage_invoices');

    $this->db->join('manage_invoice_items', 'manage_invoices.id = manage_invoice_items.invoice_id');
    $this->db->where('client_id', $client_id);
    $this->db->group_by('invoice_number');
    $query = $this->db->get();


    return $query->result();

благодаря Нартрингу (я не знал о group_by)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...