タイトルが私の質問に合わない場合はどうぞよろしくお願いいたします。CakePHP 2で2つの列を選択してください。
私は販売と売主、バイヤーと価格という名前の3列をという名前のテーブルを持っています。私が持っているもの
:私が欲しいもの Before
: After
は基本的に私は、彼らが1人の買い手で行っている売上高の合計と売り手の一覧を表示します。
これは私が一緒に行くんだSQLクエリです:
SELECT seller, buyer ,SUM(price)
FROM sales
GROUP BY seller , buyer
私の問題(このクエリはおそらく間違っているということ以外には)CakePHPの中に「翻訳」です。料理を通過した後、私は私のコントローラでこれを持っている:
public function myview(){
$this->set('mysales', $this->Sales->find('all',
array('sum(price) AS total','group' => array('seller','buyer'))));
}
私はPHPとHTMLのテーブル(私は以下のHTLMの要素を入れていない)にmyview.ctpで結果を表示する:
<?php
foreach ($mysales as $thesales)
{
echo $thesales['Sales']['seller'];
echo $thesales['Sales']['buyer'];
echo $thesales['Sales']['total'];
}?>
もちろん動作しません。私は、SQL Server 2014で働いていると私は、このエラーがあります:あなたの助けを
Error: SQLSTATE[42000]: [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Column 'sales.id' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
非常にありがとうを! SQL関数について
'Sales-> find()'で 'debug()'を実行できますか?生成されたクエリを含める必要があります。 – Bert
アレイ( \t '販売' =>配列( \t \t 'ID' => '1' \t \t '価格' => '100'、 \t \t 'バイヤー' => 'mr.X'、 \t \t '売り手' => 'mr.A' \t ) – heisenberg