3

我有一个定义为提供分组结果的Yii STAT Relation ,但是当我在 View 中访问关系时唯一的值是最新的单个值而不是每个值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 个值,还是我需要做其他事情?
有可能做我正在尝试的事情吗?

4

1 回答 1

1

你可以做你想做的事,但你不能使用 STAT 关系来做。相反,使用 Normal HAS_MANY 关系并使用相同的 select 语句。

于 2012-07-10T02:01:12.337 回答