Codeigniter-如何汇总多列

我想对所有ss_score_talentss_score_star进行汇总并显示在表中,这些值等于ss_contestant_name的值。

型号:

function get_average_score()
  {
    $this->db->select("event_contestant.cnt_id,event_contestant.cnt_fullname,event_score_sheet.ss_contestant_name,event_score_sheet.ss_date,event_score_sheet.ss_score_talent,event_score_sheet.ss_score_star,event_score_sheet_sc.sc_score_sc,event_score_sheet_pv.pv_score_pv");
    $this->db->from('event_contestant');
    $this->db->join('event_score_sheet','event_score_sheet.ss_contestant_name = event_contestant.cnt_fullname');
    $this->db->join('event_score_sheet_sc','event_score_sheet_sc.sc_contestant_name = event_contestant.cnt_fullname');
    $this->db->join('event_score_sheet_pv','event_score_sheet_pv.pv_contestant_name = event_contestant.cnt_fullname');
    $query = $this->db->get();
    return $query->result();
  }

控制器:

function read_averagescore()
  {
    $data = $this->Scoresheet_Model->get_average_score();
    echo json_encode($data);
  }

查看:JS

function show_score_average()
  {
    $.ajax({
      type      : "GET",url       : "<?php echo base_url('scoresheet/read_averagescore');?>",async     : false,dataType  : "JSON",success   : function(data)
      {
        var html = '';
        var i;
        for(i=0; i<data.length; i++)
        {
          if (data[i].cnt_fullname == data[i].ss_contestant_name)
          {
            total_sc = math.sum(data[i].ss_score_talent,data[i].ss_score_talent,data[i].ss_score_talent);
          }
          var total_average = math.sum(data[i].ss_score_talent,data[i].ss_score_star,data[i].sc_score_sc,data[i].pv_score_pv);
          html +=
            '<tr>' +
              '<td>' + data[i].ss_date + '</td>' +
              '<td>' + data[i].cnt_fullname + '</td>' +
              '<td>' + math.sum(data[i].ss_score_talent,data[i].ss_score_talent) + '</td>' +
              '<td>' + data[i].ss_score_star + '</td>' +
              '<td>' + data[i].sc_score_sc + '</td>' +
              '<td>' + data[i].pv_score_pv + '</td>' +
              '<td>' + total_average + '</td>' +
            '</tr>';
        }
        $('#show_all_score_ca').html(html);
      }
    });
  }

see this output image

更新:我的一个朋友帮助我解决了这个问题。这是SQL查询。

"SELECT `ss_contestant_name`,SUM(`ss_score_talent`) / COUNT(`ss_contestant_name`) AS totalTalent,SUM(`ss_score_star`) / COUNT(`ss_contestant_name`) AS totalStar,(SELECT `sc_score_sc` FROM `event_score_sheet_sc` WHERE `sc_contestant_name` = `ss_contestant_name`) AS totalSC,(SELECT `pv_score_pv` FROM `event_score_sheet_pv` WHERE `pv_contestant_name` = `ss_contestant_name`) AS totalPV FROM `event_score_sheet` GROUP BY `ss_contestant_name`"
gongyannn 回答:Codeigniter-如何汇总多列

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3145430.html

大家都在问