使用mysql和php计算多个列
我有一个包含以下列的销售表使用mysql和php计算多个列,php,mysql,codeigniter-2,Php,Mysql,Codeigniter 2,我有一个包含以下列的销售表 名字 类型(学生、成人、工人) 销售(A、B、C、D) 成本 位置(1,2,3,4) 我想通过名称获取与名称和组相关的类型、销售额和位置计数,以便在表上显示 是否可以使用查询获取所有分组值> 任何帮助都将不胜感激。使用GROUP BY然后SUM(condition)获得您的计数: SELECT name AS Name, SUM(type = 'worker' ) AS Worker, SUM(type =
- 名字
- 类型(学生、成人、工人)
- 销售(A、B、C、D)
- 成本
- 位置(1,2,3,4)
任何帮助都将不胜感激。使用
GROUP BY
然后SUM(condition)
获得您的计数:
SELECT name AS Name,
SUM(type = 'worker' ) AS Worker,
SUM(type = 'student') AS Student,
SUM(type = 'adult' ) AS Adult,
SUM(sales = 'A' ) AS A,
SUM(sales = 'B' ) AS B,
SUM(sales = 'C' ) AS C,
SUM(sales = 'D' ) AS D,
SUM(location = 1 ) AS Location1,
SUM(location = 2 ) AS Location2,
SUM(location = 3 ) AS Location3,
SUM(location = 4 ) AS Location4
FROM sales
GROUP BY Name
你想要什么和你尝试告诉什么??请发布不起作用的查询,我们可以帮助调整它。列不是数字,所以我不能使用SUM,我需要获得这些列的计数columns@LiveEn:虽然列不是数字,但比较操作的结果是(true为
1
,false为0
);因此,SUM
根据需要提供匹配列的计数。
function getDistributorStat() // One Distributor
{
$this ->db->select("count(*) ch1 ,
sum(c_privi_flag = 'Y') ch2, sum(c_happy1_flag = 'Y') ch3, sum(c_happy2_flag = 'Y') ch4,
sum(date(D_JOIN) = CURRENT_DATE) nch1,
sum(date(d_privi_activated) = CURRENT_DATE) nch2,
sum(date(d_happy1_activated) = CURRENT_DATE) nch3,
sum(date(d_happy2_activated) = CURRENT_DATE) nch4"
);
$this->db->from('bc_master');
$query = $this ->db->get()->row();
$data['distributors']=$query->ch1;
$data['privilaged']=$query->ch2;
$data['happy1']=$query->ch3;
$data['happy2']=$query->ch4;
$data['new_distributors']=$query->nch1;
$data['new_privilaged']=$query->nch1;
$data['new_happy1']=$query->nch1;
$data['new_happy2']=$query->nch1;
return $data;
}