与Yii STAT分组汇总?

时间:2012-07-09 12:24:07

标签: sql activerecord yii aggregate-functions

我有一个Yii STAT Relation被定义为提供分组SUM结果,但是当我在我的视图中访问该关系时,唯一的值是最新的单个值而不是每个值

例如,这是我的关系:

'total_salaries_by_job' => array(
    self::STAT, 
    'Employee', 
    'department_id', 
    'select' => 'job_type_id, SUM(salary)', 
    'group'=>"job_type_id"
) 

这将生成以下SQL:

SELECT
  department_id AS c
, job_type_id
, SUM(salary) AS s 
FROM Employee AS t
WHERE t.department_id = 1 
GROUP BY 
  department_id
, job_type_id 

手动运行,结果集为:

c     | job_type_id    | s
------+----------------+---------
1     | 1              | 233000
------+----------------+---------
1     | 2              | 25000
------+----------------+---------
1     | 3              | 179000

但是,在我看来,如果我执行以下操作:

<pre>
<?php print_r($department->total_salaries_by_job); ?>
</pre>

结果很简单:179000,而我期望它是一个包含3个元素的数组。

是按照STAT关系的工作方式返回1个值还是还有其他我需要做的事情? 有可能做我正在尝试的事情吗?

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作,但不能使用STAT关系来执行此操作。而是使用Normal HAS_MANY关系并使用相同的select语句。