【问题标题】:total of male and female in every year level and then all using codeigniter每年级别的男性和女性总数,然后全部使用codeigniter
【发布时间】:2016-02-15 17:07:04
【问题描述】:

我对每年级别的男女总和以及所有男女的总和有疑问。例如,我有 4 个学生,在 7 年级(年级)我有一个女学生和一个男学生,在 8 年级我有一个男学生,在 8 年级我有一个男学生,但问题也算在相反的情况下性别。我也有 ORDER BY ASC 或 DESC 的问题,我不知道为什么。

这是图片->

这是我的模态:

  function gendercountz(){
  
        $query = $this->db->query('select Sex
     , COUNT( case when Sex = "Male"
                 then 1 else 0 end ) as male
     , COUNT( case when Sex = "Female"
                 then 1 else 0 end ) as female
  from studentinformation');
            return $query->result();
        
    }
   function gendercountzx(){
      
        $querys = $this->db->query('SELECT Yearlevel, COUNT(*) AS studentcount, COUNT(case when Sex = "Male" then 1 else 0 end) AS malecount, COUNT(case when Sex = "Female" then 1 else 0 end) AS femalecount FROM studentinformation GROUP BY Yearlevel ORDER BY Yearlevel DESC');
            return $querys->result();
        
    }

这是我的看法:

<table class=" table table-hover ">
            
               
		         <thead>
                             <tr>
                             
                                 <th class="text-center">Year Level</th>
                                   <th class="text-center">Male</th>
                                   <th class="text-center">Female</th>
                                   <th class="text-center">Total</th>
                                  
                                   
                           </tr>
                          
                             <?php 
    foreach ($this->model_adminlogin->gendercountzx() as $ewa){ ?>
                           <tr>
                  
                   
             
                
               <td >   <h5 class="text-center"> <?php echo $ewa->Yearlevel?></h5>
   
   
		   </td>
                   <td class="text-center"><?php echo $ewa->malecount?></td>
                              <td class="text-center"><?php echo $ewa->femalecount?></td>
                  
                   <td class="text-center"><?php echo $ewa->studentcount?></td>
                   
                        
                             
         </tr>
        
        <?php 
     }
    ?>  
                
				
			
         <tr>
                       
             <td class="text-center"><b>Total</b></td>
                <?php 
    foreach ($this->model_adminlogin->gendercountz() as $ewa){ ?>
                <td class="text-center"> <?php echo $ewa->male?></td>
                 <td class="text-center"> <?php echo $ewa->female?></td>
                 
                   <?php 
     }
    ?>  
                  <td class="text-center"><?php echo  $this->db->count_all('studentinformation'); ?></td>
         </tr>
                           
                           </table>

【问题讨论】:

  • 谢谢女士/先生帮助我@Strawberry
  • 为什么即使我放了 ORDER BY ASC 也没有上升?
  • Yearlevel -> PHPadmin ma'am/sir 中的大写 Y
  • 即使我放了 Desc,第一个是 11 年级,然后是 7 年级。我不知道为什么女士/先生
  • 如果没有看到正确的数据集(例如 sqlfiddle)和期望的结果,我想我无法提供进一步的帮助。

标签: sql codeigniter


【解决方案1】:

假设你有Yearlevel 作为int 数据类型......那么你可以使用

function gendercountzx()
{
    $query = $this->db->query('SELECT CONCAT("Grade ", Yearlevel) as Yearlevel, COUNT(*) AS studentcount, sum(case when Sex = "Male" then 1 else 0 end) AS malecount, sum(case when Sex = "Female" then 1 else 0 end) AS femalecount FROM studentinformation GROUP BY Yearlevel ORDER BY Yearlevel DESC'); 
    return $querys->result();
}

【讨论】:

  • 谢谢你先生帮助我先生@Praveen Kumar
  • aw 点击检查,抱歉我忘记了
猜你喜欢
  • 2022-01-11
  • 1970-01-01
  • 2013-06-11
  • 1970-01-01
  • 1970-01-01
  • 2017-04-13
  • 2012-11-17
  • 2022-01-23
  • 2020-03-09
相关资源
最近更新 更多