1

我有这些现有的表可以使用,无法更改它们。我已经付出了一切,但无法找到解决方法。即使我解释这个问题也很复杂,所以请多多包涵。

我正在使用带有 Yii 1.1.x、Windows、Wamp 的 Oracle 10g。

模型已创建。我需要获取日期范围内给定 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

此表存储所有以前的销售。它通过 customernumber 和 jobnumber 与 CURSALES 相关联。

我需要这个预售金额的总和作为 SALESEXEC 的财产。

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

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

我在关系中尝试了“通过”子句,但它对 STAT 无效

实际上,我将传递一个 SALESEXEC id 和日期范围的列表,它需要转到 CURSALES 并获取与日期范围匹配的数据,然后需要转到 PRESAL 并获取这些客户编号的上一年销售额和工作编号)。我需要在 CGridView 中显示 SALESEXEC 列表及其总销售额和以前的总销售额。

非常感谢!

4

0 回答 0