如何在yii中获取每个用户的最新日期记录
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在yii中获取每个用户的最新日期记录相关的知识,希望对你有一定的参考价值。
我工作的工作人员报告显示最后日期。
我想获得单个用户的上次日期报告的记录,并且需要显示他们用于完成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'where子句'中的未知列'worker.MaxDate'。
答案
您不能在where where条件中使用别名和聚合结果,但您可以根据聚合结果使用for过滤结果。例如:
$criteria->having= 'a.date=worker.MaxDate';
以上是关于如何在yii中获取每个用户的最新日期记录的主要内容,如果未能解决你的问题,请参考以下文章