微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何分别计算一列中的值取决于 codiegniter 中的值?

如何解决如何分别计算一列中的值取决于 codiegniter 中的值?

这是我的表,我想从这张表中计算 attendance_status_id,其中年份 1399attendance_status_id 的值是相同的。例如在这个表中,两个 attendance_status_id 具有相同的值 1,所以当我把它算作 present_status 而另一个2 算作 absent_status我该怎么做?

enter image description here

这是我的功能

 public function get_student_attendance_daily_report($data)
 {
      return $this->db->select('sda.id sda_id,st_id,student.student_id,student.name,last_name,fname,school_class_fa_name,year,COUNT(attendance_status_id) as at_s_id,attendance_status_id,date,description')
                    ->from('student_daily_attendance sda')
                    ->join('student','student.st_id=sda.student_id')
                    ->join('school_class','school_class.school_class_id=sda.school_class_id')
                    ->join('jalali_months','jalali_months.id=sda.month_id')
                    ->where('sda.year',$data['edu_year'])
                    ->where('sda.school_class_id',$data['grades'])
                    ->where('sda.class_id',$data['class'])
                    ->order_by('sda.id','desc')
                    ->group_by('sda.student_id,sda.attendance_status_id')
                    ->get()->result_array();
}

结果如下:

array (
    'Total' => 36,)array (
0 => 
array (
  'sda_id' => '85','st_id' => '858','student_id' => 'S99888','name' => 'ٌsafa','last_name' => 'ahmadi','fname' => 'َabdullah','school_class_fa_name' => 'first class','year' => '1399','at_s_id' => '1','attendance_status_id' => '1',),.
.
.
10 => 
array (
  'sda_id' => '26','attendance_status_id' => '2',.
.
.
)

如您所见,这两个数组中的所有数据都相同,除了 attendance_status_id。 所以我想知道如何查询并将它们显示在一行中,如下所示:

|st_id|student_id|name|last_name|fname|school_class_fa_name|year|at_s_id|attendance_status_id(that value is 1)|attendance_status_id(value is tow)|
|-----|----------|----|---------|-----|--------------------|----|-------|--------------------------------------|----------------------------------|
|858|S99888|safa|ahmadi|abdullah|first class|1399|1|1|2|

解决方法

您可以使用以下查询来解决您的问题。

return $this->db->select('sda.id sda_id,st_id,student.student_id,student.name,last_name,fname,school_class_fa_name,year,SUM(CASE attendance_status_id
                      WHEN "1" THEN 1
                      ELSE 0
                   END) AS present,SUM(CASE attendance_status_id
                        WHEN "2" THEN 1
                        ELSE 0
                     END) AS absent,SUM(CASE attendance_status_id
                        WHEN "3" THEN 1
                        ELSE 0
                     END) AS sick,SUM(CASE attendance_status_id
                        WHEN "4" THEN 1
                        ELSE 0
                     END) AS st_leave,attendance_status_id,date,description')
                ->from('student_daily_attendance sda')
                ->join('student','student.st_id=sda.student_id')
                ->join('school_class','school_class.school_class_id=sda.school_class_id')
                ->join('jalali_months','jalali_months.id=sda.month_id')
                ->where('sda.year',$data['edu_year'])
                ->where('sda.school_class_id',$data['grades'])
                ->where('sda.class_id',$data['class'])

                ->order_by('sda.id','desc')
                ->group_by('sda.student_id')
                ->get()->result_array();

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?