如何在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中获取每个用户的最新日期记录的主要内容,如果未能解决你的问题,请参考以下文章

如何根据 mongoose 中嵌套 JSON 文档中数组字段的日志日期获取最新日志记录

常用python日期日志获取内容循环的代码片段

为每个用户选择最新和第二个最新日期行

如何根据最新日期从多条记录中获取特定记录

获取所有记录,每个月的最短日期,但最新的时间

如何设置子查询以获取具有最新日期和最大 ID 的单个记录?