我正在尝试做一个报告,为此我需要取得并计算每个员工的子女数量,如果已婚。我尝试了一种方法,但在查询中添加asterik行时只获得一个员工信息,否则它作为初学者获取所有员工的信息我不知道为什么。关系来自一个数组。我在这里使用表格和我的代码来理解!让我提醒你,我想要孩子的总数,这意味着儿子和女儿不仅仅是儿子或女儿的总数。
这是关系数组;
$config['relation'] = array(
'1' => 'father',
'2' => 'mother',
'3' => 'brother',
'4' => 'sister',
'5' => 'husband',
'6' => 'wife',
'7' => 'son',
'8' => 'daughter',
'9' => 'uncle',
'10' => 'unty',
'11' => 'cousin',
'13' => 'grand father',
'14' => 'grand mother',
);
这是要获取的数据库表
EMP_FAMILY_ID EMP_ID NAME NAME_BENGALI RELATION BIRTH_DATE AGE OCCPATION CONTACT_NO
1 1 fghn vbn 7 2000-09-02 15 4 23546585
2 1 dgh dfgh 7 2003-10-02 12 4 453273
3 1 fghjm fgn 8 1970-01-01 14 4 4520752
4 1 fgbbn bmnbnm 8 1970-01-01 14 4 4532
5 2 bfhb fghfg 5 1970-01-01 20 8 634565
6 3 bfhb fghfg 6 1970-01-01 20 9 634565
$query = $this->db->select('
emp.EMPLOYEE_NAME_BENGALI,
emp.EMPLOYEE_FATHER_BENGALI,
emp.EMPLOYEE_MOTHER_BENGALI,
emp.BIRTH_DATE,
emp.EMP_BLOOD_GROUP,
emp.MARITAL_STATUS,
emp.EMP_JOB_NATURE,
emp.QUOTA_ID,
**sum(case when emf.RELATION="7" || emf.RELATION="8" then 1 else 0 end) as son,**
')
->from('hrm_ls_employee as emp')
->join('hrm_ls_emp_family as emf','emp.EMP_ID = emf.EMP_ID','left')
->where('emp.IS_DELETED',0)
->order_by('emp.EMP_ID')
->get();
$emp_details_report = $query->result();