まず第一に、私の英語でごめんなさい。これについては助けが必要です。最近、私はYiiで最初のプロジェクトを開始しました。すべてが素晴らしく、フレームワークは完璧に見えますが、ActiveRecordを使用してデータベースからレコードを選択するのに少し問題があります。
次のコードがあるとしましょう:
$criteria = new CDbCriteria();
$criteria->select = '*, user.*, sum(if(points > 0, 1, 0)) as rank_points, sum(points) as all_points, count(*) as count_all';
$criteria->group = 'user_id';
$criteria->order = 'all_points desc';
$users = Types::model()
->with('user')
->findAll($criteria);
これに問題があります
sum(if(points > 0, 1, 0)) as rank_points
使用すると、次のエラーが発生します。
アクティブレコード「Types」が無効な列「sum(if(points> 0"」を選択しようとしています。列はテーブルに存在するか、エイリアスを持つ式である必要があります。
問題は、このクエリが正しいことです。手動で使用することも、クエリビルダーを使用して(試したことはありませんが、機能するはずです)使用することもできます。私はARでこれを行うことを決意しているので、ここに私の質問があります。述べられているようにこれを行うことは可能ですか?私は何か間違ったことをしていますか、それとももっと複雑な問題ですか?
すべての返信を事前に感謝します。