2011-01-19 6 views
0

は、いずれかが、私は「ターゲット」「MarketingArea」モデルを持っているの文変換クエリ文

SELECT 
    SUM(ISNULL(tg_prd_value,0)) as total,MAX(tblMarketingArea.mkt_Area_ID) as mkt_Area_ID,MAX(tblMarketingArea.mkt_Area) as mkt_Area 
FROM 
    tblTarget right outer join 
    tblMarketingArea on (tblMarketingArea.mkt_Area_ID = tblTarget.tg_area_id and tblTarget.tg_month = 1 and tblTarget.tg_year = 2011) 
where tblMarketingArea.isDeleted!=1 
GROUP BY 
    tblMarketingArea.mkt_Area_ID order by tblMarketingArea.mkt_Area_ID 

を見つけるのCakePHPには、このクエリを変換するために私を助けることができる見つける。(私が知っているテーブル名がありますcakephpの規則によるものではありませんが、これらの名前を使用する必要があります)。私はSQL Serverのを使用していますので、私はケーキconvensionに応じて、テーブルのための同義語を作成

モデルMarketingArea私はこの結合

$this->bindModel(array(
     'hasMany' => array(
      'Target' => array(
       'foreignKey' => 'tg_area_id', 
       'conditions' => array(
        'tg_month' => 1, 
        'tg_year' => 2011 
        ) 
           ) 
         ) 
        ) 
       ); 
試してみました

class MarketingArea extends AppModel{ 
    var $name='MarketingArea'; 
    var $primaryKey='mkt_Area_ID'; 
} 

(marketing_area.php)

しかし、まだ私は問題に直面しているSUM(tg_prd_value)

感謝の気持ち。

答えて

3

findメソッドを使用する特別な理由がない限り、モデルメソッドを作成してquery()を使用してSQL文を実行するだけです。月と年がパラメータの場合は、SQLインジェクション攻撃を避けるために整数であることを確認してください。

関連する問題