Как запросить и суммировать данные с тем же именем, но все же получить имя - PullRequest
1 голос
/ 12 октября 2019

У меня есть таблица 'sales_revenue', она выглядит так:

product_name     |   revenue   | 
  pen            |      20     |   
  pen            |      40     |   
  bottle         |      50     |  
  bottle         |      50     |  
  green pen      |      20     |   

мой запрос в codeigniter выглядит так:

$data['row'] = $this->db->group_by('product_name')- 
>order_by('revenue','DESC')->select_sum('revenue')- 
>get('sales_revenue')->result();

В результате получается только сумма дохода,но моя цель - получить общий доход от каждого продукта, а также название продукта. Любое предложение, как это сделать?

Ответы [ 4 ]

0 голосов
/ 16 октября 2019

Я нашел свой ответ на эту проблему:

 $data['row'] = $this->db ->group_by('product_name')
                          ->order_by('revenue','DESC')
                          ->select_sum('revenue')
                          ->select('product_name')
                          ->get('sales_revenue')
                          ->result();
0 голосов
/ 12 октября 2019

Просто используйте

$data['row'] = $this->db->query('SELECT product_name,SUM(revenue) AS revenue FROM sales_revenue GROUP BY product_name ORDER BY product_name DESC')

Если вы хотите отсортировать его по доходам, используйте

ORDER BY SUM(revenue) ASC
0 голосов
/ 12 октября 2019

Я не знаю о codeigniter, но в стандартном SQL вы могли бы сделать это с псевдонимом.

SELECT product_name, revenue, (SELECT sum(revenue) FROM sales_revenue) as total_revenue FROM sales_revenue GROUP BY product_name ORDER BY revenue DESC;
0 голосов
/ 12 октября 2019

Я не проверял, но я думаю, что вы можете сделать следующее

$data['row'] = $this->db->group_by('product_name')
    ->order_by('revenue','DESC')
    ->select('SUM(revenue), product_name')
    ->get('sales_revenue')->result();

или просто:

$data['row'] = $this->db->query('SELECT SUM(revenue), product_name FROM sales_revenue GROUP BY product_name ORDER BY revenue DESC')

Надеюсь, это поможет

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