我工作的工作人员报告显示最后日期。
我想获得单个用户的上次日期报告的记录,并且需要显示他们用于完成yii中最后一个日期的单个项目所花费的总时间。
我的表结构是:
id worker project total_time date
---------------------------------------------
1 6 2 1370932128 20-12-2017
2 9 3 1370931664 20-12-2017
3 12 5 1370933037 20-12-2017
4 12 6 1370932128 19-12-2017
目前我的work_report表模型查询是
$criteria=new CDbCriteria;
$criteria->alias = 'a';
$criteria->select = 'a.*, worker.*, project.*, SUM(a.total_time) as groupbysum, max(a.date) as MaxDate';
$criteria->with = array('worker','project');
$criteria->condition = 'a.date=worker.MaxDate';
$criteria->group = 'a.project, a.worker';
$criteria->order = 'worker.worker_name ASC';
$new_criteria = clone $criteria;
$new_criteria->select = "SUM(a.total_time) as sum";
$new_criteria->group = '';
$new_result = WorkReport::model()->find($new_criteria);
它不起作用。它显示我的SQL错误,我没有想法解决这个问题。
未找到列:1054未知列' worker.MaxDate'在' where子句'。
答案 0 :(得分:0)
您不能在where where条件中使用别名和聚合结果,但您可以根据聚合结果使用过滤结果。例如:
$criteria->having= 'a.date=worker.MaxDate';