Php case语句查询中的增量临时变量值
使用case语句根据column值计算count,我使用了以下代码:Php case语句查询中的增量临时变量值,php,mysql,yii,Php,Mysql,Yii,使用case语句根据column值计算count,我使用了以下代码: SET @tempVariable1 := 0; SET @tempVariable2 := 0; SELECT EMPLOYEEID,count(ADNUMBER), CASE WHEN AEERROR <> '--' then @tempVariable1:=@tempVariable1+1
SET @tempVariable1 := 0;
SET @tempVariable2 := 0;
SELECT EMPLOYEEID,count(ADNUMBER),
CASE
WHEN AEERROR <> '--' then @tempVariable1:=@tempVariable1+1
ELSE 0
END AS Ext_err,
CASE
WHEN INTERNALERRORS <> '--' then @tempVariable2:=@tempVariable2+1
ELSE 0
END AS Int_err
FROM employee_productivity_details group by(EMPLOYEEID) LIMIT 2,20;
SET@tempVariable1:=0;
设置@tempVariable2:=0;
选择EMPLOYEEID、计数(ADNUMBER),
案例
当AEERROR'--'时,则@tempVariable1:=@tempVariable1+1
其他0
以Ext_err结束,
案例
当INTERNALERRORS'--'时,则@tempVariable2:=@tempVariable2+1
其他0
以内部错误结束
根据(EMPLOYEEID)限制2,20从员工生产力详细信息组中删除;
当我在workbench上运行时,它工作正常,但当我在PHP变量中设置这个查询时,比如
$sql
,它就会显示错误。那么如何在查询中设置临时变量?还有其他方法吗?这是你想要的吗
SELECT EMPLOYEEID, count(ADNUMBER),
SUM(AEERROR <> '--') AS Ext_err,
SUM(INTERNALERRORS <> '--' ) AS Int_err
FROM employee_productivity_details
group by(EMPLOYEEID)
LIMIT 2, 20;
选择员工ID、计数(ADNUMBER),
求和(AEERROR'-')为Ext_err,
求和(内部错误“---”)为整数错误
来自员工(生产力)(详情)
组员(员工ID)
限制2,20;
根据需要,这对我来说很好
SELECT EMPLOYEEID,
count(ADNUMBER),
COALESCE(SUM(CASE INTERNALERRORS WHEN INTERNALERRORS <> '--'
THEN 0 ELSE 1 END), 0) as IntErr,
COALESCE(SUM(CASE AEERROR WHEN AEERROR <> '--'
THEN 0 ELSE 1 END), 0) AS ExtErr
FROM employee_productivity_details
group by(EMPLOYEEID) order by EMPLOYEEID LIMIT 2,20;
选择EMPLOYEEID,
计数(ADNUMBER),
合并(当INTERNALERRORS'--'时,以INTERNALERRORS为例求和)
然后0否则1结束),0)作为中断,
合并(总和)(AEERROR'--'时的AEERROR情况)
然后0(否则1结束),0)作为外部程序
来自员工(生产力)(详情)
分组依据(员工ID)顺序依据员工ID限制2,20;
出现什么错误?CDbCommand无法执行SQL语句:SQLSTATE[HY000]:常规错误。-它在yii框架中没有。我想根据写入的条件将值增加1case@anaghaaffinity . . . 如果这是你想要的,那么你应该考虑接受这个答案。