sql >> データベース >  >> RDS >> Mysql

この繰り返しを停止し、日付でグループ化する方法

    Yonは、サブクエリでUNIONを使用し、次にSELECTでGROUP BYを使用する必要があります:

    SELECT my_date, 
           my_month, 
           SUM(credit), 
           SUM(debit)
    FROM (
        SELECT cc.credit_date as my_date,
               MONTHNAME(cc.credit_date) as my_month,
               ROUND(SUM(IFNULL(cc.credit_amount,0)),2) AS credit,
               0 AS debit
        FROM   cust_credit cc
        WHERE YEAR(cc.credit_date) = YEAR(NOW()) 
        GROUP BY cc.credit_date,
                 MONTHNAME(cc.credit_date)
        UNION
        SELECT 
               cd.debit_date ,
               MONTHNAME(cd.debit_date) ,
               0 ,
               ROUND(SUM(IFNULL(cd.debit_amount,0)),2)
        FROM   cust_debit cd
        WHERE YEAR(cd.debit_date) = YEAR(NOW()) 
        GROUP BY cd.debit_date, 
                 MONTHNAME(cd.debit_date) 
    ) as TT
    GROUP BY my_date,my_month
    

    これはフィドルです



    1. シェルスクリプトを使用して複数のMySQLコマンドを実行するためのより良い方法

    2. Rを使用してPostgresスキーマ内のテーブルを一覧表示します

    3. mysqlのランダムな結果を表示する

    4. 1年以上前のレコードを削除する