一尘不染

与Yii STAT分组汇总?

sql

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

例如,这是我的关系:

'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值,还是我需要做其他事情?
有可能做我想做的事吗?


阅读 148

收藏
2021-03-08

共1个答案

一尘不染

您可以按照自己的意愿去做,但是不能使用STAT关系来做到这一点。而是,使用普通的HAS_MANY关系并使用相同的select语句。

2021-03-08