스태프가 강좌 및 어셈블리에 참여한 시간의 합계에 대한 결과를 얻지 못했습니다.CakePHP - 다른 관계의 SUM 데이터 표
내 컨트롤러에서public $belongsTo = array('Staff','Course','Assembly');
이 코드 쓰기 시도 : - -이 :
모델에서staffs
+---+-------+-----------+
| id| Name | Department|
+---+-------+-----------+
| 1 | Joe | HR |
| 2 | Andra | Support |
| 3 | Khan | HR |
| 4 | Toll | HR |
| 5 | Gosh | Support |
| 6 | Rama | Support |
+---+-------+-----------+
attendances
+---+---------+-----------+--------------+
|id | name_id | course_id | assembly_id |
+---+---------+-----------+--------------+
| 1 | 1 | 101 | |
| 2 | 1 | 102 | |
| 3 | 1 | | 501 |
| 4 | 2 | 102 | |
| 5 | 3 | | 502 |
| 6 | 3 | 103 | |
| 7 | 4 | 101 | |
| 8 | 4 | | 501 |
| 9 | 4 | 102 | |
+---+---------+-----------+--------------+
courses
+-------+-----------+-------+
| id | name | hours |
+-------+-----------+-------+
| 101 | courses_1 | 8 |
| 102 | courses_2 | 6 |
| 103 | courses_3 | 9 |
+-------+-----------+-------+
assembly
+-------+---------------+-------+
| id | name | hours |
+-------+---------------+-------+
| 501 | assembly_1 | 2 |
| 502 | assembly_2 | 4 |
+-------+---------------+-------+
> 출석 이미 관계 추가 -이 : 여기 내 데이터베이스입니다
$view = $this->Staff->find('all',array(
'fields' => array('SUM(COALESCE(Course.hours,0))+SUM(COALESCE(Assembly.hours,0)) as ec_count'),'recursive'=>2));
$this->set('view', $view);
을하지만 그것을 오류를 반환합니다 .. (내가 여기에 뭔가 잘못한 것처럼 보입니다)
이 조건으로 코드를 작성하는 방법은 ap 이 같은보기를 통해 배 : -
+---+-------+-----------+------------+
| id| Name | Attend | Total Hour |
+---+-------+-----------+------------+
| 1 | Joe | course_1 | 16 |
| | | course_2 | |
| | | assembly_1| |
| 2 | Andra | course_2 | 6 |
| 3 | Khan | assembly_2| 13 |
| | | course_3 | |
| 4 | Khan | course_1 | 16 |
| | | assembly_1| |
| | | course_2 | |
| 5 | Gosh | - | 0 |
| 6 | Rama | - | 0 |
+---+-------+-----------+------------+
cake2.x를 사용하고 있습니까? 필드와 사용자 지정 SQL을 혼합하는 대신 여기에 가상 필드를 사용하십시오. 읽고 이해하는 것이 더 깔끔하고 작업하기에 더 깨끗합니다. – mark
cake2를 사용하고 있습니다. 그러나 새로운 가상 필드를 사용해보십시오. 가상 필드를 사용하여 이해하기 쉬운 안내서를 찾으십시오. @mark –