2017-08-10 16 views
0

各ユーザーのすべての経費と所得を同じグリッドビューで合計し、毎月フィルタする必要があります。私は2つのSQLクエリーを持っていて、それぞれのクエリーを処理します。しかし、私は組合のために助けが必要です.yii2のためにactivedataproviderを変換してください。もし結果が間違っているならば。yii2で月ごとにスフェスを取得する方法

これは私のコードです:

public function actionEstadistics() 
{ 
    $request = Yii::$app->request; 
    $user_id = Yii::$app->user->id; 


    $sql = "SELECT date_format(created_at,'%Y-%m') AS periodo, 
    SUM(efectivo+valesotros) AS ingresos 
    FROM pagosing 
    WHERE user_id= $user_id  
    GROUP BY date_format(created_at,'%Y-%m') 
    "; 


    $sql2 = "SELECT date_format(created_at,'%Y-%m') AS periodo, 
    SUM(costototal) AS gastos 
    FROM garageservices 
    WHERE user_id= $user_id  
    GROUP BY date_format(created_at,'%Y-%m') 
    "; 


$dataProvider = new SqlDataProvider([ 
    'sql' => $sql, 
    'pagination' => false 
]); 
+0

ループを作成してすべての費用を合計しないのはなぜですか? – madalinivascu

+0

か、かわいそうとガレージサービスの参加をしますか?その合計をしますか? – madalinivascu

+0

私にdbスキーマを投稿させてください –

答えて

0

私はあなたが2つのモデル1は、「ユーザー」である2つ目は「UserExpenses」である持っていることを前提としています。今、あなたは、下記の手順する必要があります:すべての費用の詳細がありますユーザーの詳細モデルの

  1. を表示するグリッドと別のUserExpenses詳細モデルグリッドにアクション列

  2. リンクアクションボタンの内側にアクションボタンを取ると、収入

  3. 費用と収入の合計を表示するには、KartikGridViewを使用できます。また、データのフィルタリングにも適用されます。

  4. UserExpenseモデルグリッドの詳細に月単位のフィルタを適用します。

詳細については、データベース構造を投稿してください。だから私はあなたのためのコードを投稿することができます。私は与えられたシナリオがあなたのために働くことを望む。

+0

テーブルのユーザーID、テーブルpagosing、合計efectivo + vales、user_id(収入)テーブルgarageservices合計costototal、user_id、 Googleのグラフのように$ query = Pagosing :: find() - > select( "date_format(created_at、 '%Y-%m')AS periodo、sum(efectivo)as ingresos)のように結合してみてください。 $ query-> joinWith(['user']);このエラーを表示します------>構文エラーまたはアクセス違反:1582ネイティブ関数 'date_format'と別のクエリsql sumの呼び出しでパラメータのカウントが正しくありません。その仕事 –

+0

私は毎月チャートを作りたいです。私は関係合計とグループバイを試してみる。 ( 'efectivo + valesotros') - > groupBy( '​​date_format()のようなpublic function getPagosingMonth() { return $ this-> hasMany(Pagosing :: className()、[' user_id '=>' id ']) (created_at、 "%Y-%m")AS periodo、 '); }このエラーが発生しました - 文字列のメンバー関数groupBy()を呼び出す –

関連する問題