【发布时间】:2014-04-08 07:08:12
【问题描述】:
我这个 sql 部分的代码是
$criteria = new CDbCriteria;
.......
$criteria->select = 'user.user_id as userId, user.name as userName, COUNT(*) AS totalCount,
SUM(CASE WHEN (t.create_datetime > (SELECT DATE_ADD(curdate(), INTERVAL(2-DAYOFWEEK(curdate())) DAY)) AND t.create_datetime < \'2013-06-08\') THEN 1 ELSE 0 END) AS weeklyCount,
SUM(CASE WHEN (MONTH(t.create_datetime) = 9 ) THEN 1 ELSE 0 END) AS monthlyCount';
.......
$criteria->group = 'user.user_id';
$criteria->with = array('user');
$criteria->addCondition('t.deleted=0', 'AND');
$criteria->addCondition('t.user_id = user.user_id', 'AND');
我得到的错误是:
Type: CDbException
Active record `Inspection` is trying to select an invalid column `SUM(CASE WHEN (t.create_datetime > (SELECT DATE_ADD(curdate()`. Note, the column must exist in the table or be an expression with alias.
我看过:How use DATE_ADD in Yii $criteria? 这是 Yii $criteria 中 date_add 的解决方案。但在我的情况下,日期添加不适用于选择,它是选择中的一个条件。
请帮助我。谢谢
【问题讨论】:
-
尝试了davey解决方案后还有问题吗?
-
我正在尝试。因为我正在处理另一个问题。但我认为他的解决方案是可以的。 :)