これらの既存のテーブルを操作する必要がありますが、それらを変更することはできません。私はすべてを与えましたが、回避策を得ることができません。問題を説明するのは私にとっても複雑なので、ご容赦ください。
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 と 1 対多の関係にあります。
PRESALES
------------------------------------------
jobnumber | AJOB2014 | AJOB2014
customernumber | cus1 | cus2
amount | 500 | 700
salesexec_id | 1 | 1
このテーブルには、以前のすべての売上が格納されます。カスタマー番号とジョブ番号によって CURSALES に関連付けられます。
SALESEXEC のプロパティとして、この PRESALES 金額の合計が必要です。
例のように、salesdate の範囲を 01-08-2014 と 15-08-2014 として渡す場合、CURSALES の 2 番目の行にマップされる cus2 があるため、2 番目の行ではなく PRESALES の 1 番目の行を SUM に含める必要がありますが、その販売日は、指定された日付範囲外です。
SALESEXEC モデル 'PRESALES_TOTAL' => array(self::STAT, 'PRESALES', 'id', 'select'=>'SUM(AMOUNT)') でこれを試しましたが、日付範囲と一致せずに以前のすべての売上を返しますジョブ番号と顧客番号
リレーションで「through」句を試しましたが、STAT には無効です
実際には、SALESEXEC id と日付範囲のリストを渡します。CURSALES に移動して日付範囲に一致するデータを取得する必要があります。次に、PRESAL に移動して、それらの顧客番号とジョブ番号)。SALESEXEC のリストを CGridView で総売上高と以前の総売上高とともに表示する必要があります。
どうもありがとう!