3

グループ化された結果を提供するように定義されたYii STAT リレーションがありますが、ビューでリレーションにアクセスすると唯一の値は、各値ではなく最新の単一の値です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 関係を使用してそれを行うことはできません。むしろ、通常の HAS_MANY 関係を使用し、同じ選択ステートメントを使用してください。

于 2012-07-10T02:01:12.337 に答える