yii从与相关表相关的表中获得总和

时间:2014-08-22 13:59:18

标签: php yii yii-relations

我有这些现有表可以使用,无法更改它们。我已经给了一切,但无法得到解决方法。即使我解释这个问题也很复杂,所以请耐心等待。

我正在使用Oracle 10g和Yii 1.1.x,WIndows,Wamp。

已创建模型。我需要在日期范围之间获得给定SALESEXEC的PRESALES总和。

SALESEXEC
------------------------------------------
id             | 1
name           | salesguy1

relation
'SALES_TOTAL' => array(self::STAT, 'CURSALES', 'id', 'select'=>'SUM(AMOUNT)'),

以上工作,我可以获得每个SALESEXEC的当前总销售额 我还需要一个PRESALES_TOTAL,完全卡在那里

CURSALES
------------------------------------------
jobnumber      | AJOB2014   | AJOB2014
customernumber | cus1       | cus2
amount         | 1000       | 1000
saledate       | 01-08-2014 | 01-09-2014
salesexec_id   | 1          | 1

SALES EXEC与CURSALES有一个多关系。

PRESALES
------------------------------------------
jobnumber      | AJOB2014  | AJOB2014  
customernumber | cus1      | cus2
amount         | 500       | 700
salesexec_id   | 1         | 1

此表存储以前的所有销售额。它与客户编号和工作编号相关的CURSALES。

我需要将此PRESALES金额的总和作为SALESEXEC的财产。

如示例所示,如果我将salesdate范围作为01-08-2014和15-08-2014传递,它应该在SUM中包含PRESALES第1行但不包括第2行,因为它具有映射到第2行的cus2 CURSALES但是它的saledate超出了我给定的日期范围。

我在SALESEXEC模型中尝试过这个 ' PRESALES_TOTAL' =>数组(self :: STAT,' PRESALES',' id',' select' =>' SUM(AMOUNT)'), 但它返回所有以前的销售,但没有匹配日期范围和作业编号和客户编号

我试过'通过'关系中的子句但对STAT

无效

实际上,我会传递SALESEXEC ID和日期范围的列表,它需要转到CURSALES并获取与日期范围匹配的数据,然后需要转到PRESAL并获得前一年的总数&#39 ;那些客户数量和工作数量的销售额)。 我需要在CGridView中显示SALESEXEC列表及其总销售额和以前的总销售额。

非常感谢!

0 个答案:

没有答案