codeigniter: получить процент в нескольких таблицах по категориям данных

0

У меня есть такие таблицы,

table_a

PID  Name   Type
1    a      selling
2    b      sampling
3    c      selling
4    d      sampling
5    e      selling

А также,

table_b

ID      PID   Qty
1       2     3
2       2     2
3       1     1
4       3     1
5       1     3
6       5     3
7       4     3
8       3     2

Мне нужно показать это,

output_selling

Name           Total_qty     Percentage
a              4             40%
c              3             30%
e              3             30%

А также,

output_sampling

Name           Total_qty     Percentage
b              5             62,5%
d              3             37,5%

Как мне это сделать в CodeIgniter?

  • 0
    function output_selling(){ $total = $this->db->select('SUM(table_b.Qty) as Total_qty', FALSE); $this->db->select('((sum(table_b.Qty)/'.$total.',0)*100 )as percentage', FALSE); $this->db->from('table_b'); $this->db->join('table_a', 'table_a.PID= table_b.PID', 'left'); $this->db->where('table_a.Type', "selling"); $this->db->group_by('table_b.PID'); $query = $this->db->get(); return $query->result(); }
Теги:
codeigniter
model

1 ответ

1

Вы можете использовать ниже в своей функции и изменить "выборку" и "продажу" по мере необходимости:

$this->db->query("
SELECT dd.NAME, 
       dd.total_qty, 
       ( dd.total_qty / dd.totals ) * 100 AS Percentage 
FROM   (SELECT a.NAME, 
               Sum(b.qty)                            AS Total_qty, 
               (SELECT Sum(b1.qty) AS total 
                FROM   table_b b1 
                       JOIN table_a a1 
                         ON a1.pid = b1.pid 
                            AND a1.type = 'selling') AS totals 
        FROM   table_a a 
               JOIN table_b b 
                 ON b.pid = a.pid 
                    AND a.type = 'selling' 
        GROUP  BY a.pid) dd ");

См. Ниже вывод запроса:

Изображение 174551

Ещё вопросы

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