如何根据cakephp中的其他列值求和

萨哈尔

我是cakephp学习者,正在从事一个项目。我有个问题。我做了谷歌,但找不到正确的解决方案。希望我能在这里找到解决方案。

这是我的代码。

function getCompanySales(){
  $model=ClassRegistry::init('Customer');
  $modelcompany=ClassRegistry::init('Company');
  $from = date("Y-m")."-01 00:00:00";
  $days_in_month = cal_days_in_month(CAL_GREGORIAN, date('m'), date('Y'));
  $to =  date("Y-m")."-".$days_in_month." 24:00:00";
  $companyname=$modelcompany->find('all');
  $companiessales=$model->find('all',array(
    'conditions' => array(
                    "AND" =>array(
                       "Customer.created >=" => $from,
                       "Customer.created <=" => $to
                                  )
                      ),
    'recursive'=>-1
      )
  );
 return $companiessales;
} // Get Company list

我得到的结果像

    Array ( 
    [0] => Array ( [Customer] => Array ( [gateway] => 10 [amount] => 349 ) ) 
    [1] => Array ( [Customer] => Array ( [gateway] => 7 [amount] => 150 ) ) 
    [2] => Array ( [Customer] => Array ( [gateway] => 13 [amount] => 349 ) ) 
    [3] => Array ( [Customer] => Array ( [gateway] => 10 [amount] => 350 ) ) 
    [4] => Array ( [Customer] => Array ( [gateway] => 7 [amount] => 100 ) ) 
    [5] => Array ( [Customer] => Array ( [gateway] => 9 [amount] => 299 ) ) 
    [6] => Array ( [Customer] => Array ( [gateway] => 7 [amount] => 249 ) ) 
    [7] => Array ( [Customer] => Array ( [gateway] => 10 [amount] => 249 ) ) 
    [8] => Array ( [Customer] => Array ( [gateway] => 7 [amount] => 299 ) ) 
    [9] => Array ( [Customer] => Array ( [gateway] => 12 [amount] => 199 ) ) 
    [10] => Array ( [Customer] => Array ( [gateway] => 7 [amount] => 150 ) )      )

但是我想用相同的网关总结价值

    array(
    [7] => 948 //sum of gateway 7
    [9] => 299 //sum of gateway 9
    [10] => 948 //sum of gateway 10
    [12] => 199 //sum of gateway 12
    [13] => 349 //sum of gateway 13
    )

在另一个查询中=>

    array(
    [7] => company 1
    [9] => company 2 
    [10] => company 3
    [12] => company 4
    [13] => company 5

    )

我想要一个最终结果

    array(
    [company1] => 948
    [company1] => 299
    [company1] => 948
    [company1] => 199
    [company1] => 349
    )

感谢你的帮助。我敢肯定,我将通过简单的步骤解决此问题。

萨哈尔

感谢stackoverflow给我一些想法并找出解决方案。我首先按总和找到客户清单,然后按以下代码按网关分组。在视图中,使用自定义帮助器通过ID获取名称。那就是我一直在寻找的东西。

    $companiessales=$model->find('all',array(
      'fields'=>array(
      'SUM(amount) AS amount',
      'gateway'
      ),
   'group' => 'Customer.gateway',
   'conditions' => array(
                "AND" =>array(
                    "Customer.created >=" => $from,
                    "Customer.created <=" => $to
                    )
                ),
   'recursive'=>-1
   )
  );

这是通过ID获取网关名称的代码(我们通过对它们进行分组来使它们成为主要ID)。

    function getGatewayName($id){
     $model=ClassRegistry::init('Gateway');
     $companiess=$model->find('first',array(
         'fields'=>array('fullname'),
         'conditions'=>array(
         'Gateway.id' => $id,
         ),   
        'recursive'=>-1
       )
      );
      $name=$companiess['Gateway']['fullname'];
      return $name;
    } // Get Payment Gateway Name

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何根据其他 4 列的值对一列中的值求和?

熊猫:如何根据其他列值的条件求和?

根据其他列中的值求和(变量)

根据 R 中的其他列值对行求和

如何根据Pandas DataFrame中其他列的值仅对某个列的某些元素求和?

Matlab:如何根据其他列中的条目求和一定范围内的值

如何根据其他3列[R]中的匹配值计算在1列中求和值的行数?

根据其他列中的条件对一列中的值求和,并更改值

根据其他列中的值对列中的值求和;第2部分

根据不同列中的其他2个值对一列的值求和

如何使用其他列值求和

根据其他列中的条件对列中的唯一值求和

如何根据其他列值对某一列求和

在 R 中,如何根据其他列的值从其他列的列标题创建新列

如何根据熊猫中的其他列映射值?

如何根据其他列更新向量中的值

如何根据python中其他列的条件计算值?

创建列,其中根据其他列值的条件对其他列求和?

如何基于其他列中的值求和单个列的值?

Python,如何根据其他列中的其他值替换值?

如何為其他列中的每個值求和組中的值?

如何使用熊猫数据框中其他列的条件语句对列中的值求和?

如何根据其他列过滤值?

如何根据多列其他列中的值减去一列中的值?

如何根据 R 中其他列中的值使列值唯一?

如何根据其他列中的值计算列中唯一值的数量

如何根据R中其他列的值过滤一列中的值?

熊猫:如何创建基于其他列值的条件对其他列求和的列?

如何对列表中其他列分组的列求和?