Можно ли найти cakephp с дополнительными условиями или мы можем умножить поле sum() с условной переменной? Я не знаю, какой может быть лучший вопрос, чтобы вы, ребята, знали, о чем я прошу. поэтому я даю более подробную информацию о вопросе. Я могу найти похожие данные с одним массивом с некоторым трюком. но я не могу найти для этого. Пожалуйста, помогите мне или дайте мне идею сделать такую задачу. Благодарю.Cakephp sum() с умножением
Использование CakePHP 2.6
Я хочу найти данные из первой таблицы здесь ..
$incentiveweekly=$this->Incentive->find('all',
array('conditions' =>
array(
"AND"=>array(
"Incentive.fromdate >=" => $from,
"Incentive.todate <=" => $to
)
)
)
);
according to number of rows. I have to find another table
Here is the result of above find condition.
Array
(
[Incentive] => Array
(
[id] => 2
[target1] => 3000
[price1] => 1.5
[target2] => 6000
[price2] => 2.5
[target3] => 8000
[price3] => 3.5
[formonth] =>
[type] => 1
[fromdate] => 2016-11-13
[todate] => 2016-11-21
[updatedby] => 1
[created] => 2016-11-15 23:57:21
[modified] => 2016-11-15 23:57:21
)
)
Array
(
[Incentive] => Array
(
[id] => 3
[target1] => 3000
[price1] => 1.5
[target2] => 6000
[price2] => 2.5
[target3] => 8000
[price3] => 3.5
[formonth] =>
[type] => 1
[fromdate] => 2016-11-24
[todate] => 2016-11-28
[updatedby] => 1
[created] => 2016-11-15 23:57:21
[modified] => 2016-11-15 23:57:21
)
)
Теперь я хочу, чтобы найти массив в соответствии с номером записи массива.
$byweek=array(); // Storing Customer data by Target dates in array()
foreach ($incentiveweekly as $weekly){
print_r($weekly);
$target3=$weekly['Incentive']['target3'];
$target2=$weekly['Incentive']['target2'];
$target1=$weekly['Incentive']['target1'];
$price3=$weekly['Incentive']['price3'];
$price2=$weekly['Incentive']['price2'];
$price1=$weekly['Incentive']['price1'];
$byweek[]=$customers=$this->Customer->find('all',array(
'fields'=>array(
'SUM(amount) AS amount',
'created_by'
),
'group' => 'Customer.created_by',
'conditions' => array(
"AND" =>array(
"Customer.created >=" => $weekly['Incentive']['fromdate'],
"Customer.created <=" => $weekly['Incentive']['todate']
)
),
'recursive'=>-1 )
);
//print_r($byweek);
}
Я получаю результат, как ...
Array
(
[0] => Array
(
[0] => Array
(
[Customer] => Array
(
[created_by] => 3
)
)
)
)
Array
(
[0] => Array
(
[0] => Array
(
[Customer] => Array
(
[created_by] => 3
)
)
)
[1] => Array
(
[0] => Array
(
[Customer] => Array
(
[created_by] => 1
)
)
[1] => Array
(
[Customer] => Array
(
[created_by] => 2
)
)
)
)
Но я хочу, чтобы сумма будет умножаться с на, если другое состояние, когда я использую тройной оператор.
$value[0]['amount']>=$valuem['Incentive']['target3']?"Target Third":($value[0]['amount']>=$valuem['Incentive']['target2']?"Target Second":($value[0]['amount']>=$valuem['Incentive']['target1']?"Target First":"None"))
Основная цель, чтобы найти подробную информацию. Я хочу создать поощрительную сумму, где общая сумма продаж должна соответствовать заданной целевой сумме. Если значение target1 равно одному, то стимулом будет общая сумма * price1 и та же самая с target2 и target3. где я использую оператора арендатора. Целевая цена должна быть умножена (по условию) с теми же данными условия поиска.
Я ищу в google и переполнении стека, но не могу найти его решения. Однако я благодарен переполнению стека и все, что вам нравится, я могу найти множество трюков и решений.
На самом деле, я хочу умножить общую сумму с суммой стимулов. Но сумма поощрения зависит от общей суммы, как если бы (сумма общей суммы> = целевая сумма 3, тогда сумма поощрения была бы равна цене3), но если (сумма общей суммы> = целевая сумма 2, тогда сумма поощрения была бы ценой2). – SAHAR
Я думаю, что вы почти близки к моим решениям. Но я хочу знать, где я помещаю ваш код предложения. Внутри поискового запроса или вне поискового запроса. Если я помещаю его вне поискового запроса. Он не может найти сумму. – SAHAR