2017-12-21 26 views
1

임 근로자가 마지막 날짜에 대한 보고서를 표시합니다.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 알 수없는 열 'worker.MaxDate'in 'where clause'.

+0

전체 테이블 구조를 게시하고 예상 출력하십시오 쿼리/결과. –

답변

0

당신은 어디 상태 별칭 및 집계 결과를 사용할 수 있지만 집계 결과에 따라 필터 결과를 가지고 사용할 수 있습니다 .. 예 :

$criteria->having= 'a.date=worker.MaxDate';