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

さまざまなテーブルでかなり基本的な合計を行う

    1つのアプローチは、インラインビューを使用することです。これを行うには

    • 獲得したポイントを合計するクエリを作成します
    • 費やしたポイントを合計するクエリを作成します
    • クエリを結合します(まだ何も使用していない場合は左結合)
    • 引き算を行う


    SELECT SumOfPointsEarned.Points - COALESCE(SumOfPointsOfPurchasesMade.Points, 0) AS CurrentPoints
    FROM   
    (
        SELECT SUM(Points) AS Points, Recipient_ID 
        FROM   transactions 
                WHERE Recipient_ID= 137642
        GROUP  BY Recipient_ID
    ) AS SumOfPointsEarned 
        LEFT JOIN 
        (
            SELECT purchases.Student_ID,  SUM(rewards.Cost_to_User) AS Points 
            FROM   purchases 
                INNER JOIN rewards 
                ON purchases.Reward_ID = rewards.Reward_ID 
                        WHERE Student_ID = 137642
            GROUP  BY purchases.Student_ID
        ) AS SumOfPointsOfPurchasesMade 
        ON SumOfPointsEarned.Recipient_ID = SumOfPointsOfPurchasesMade.Student_ID
    


    1. jOOQはPostgresに存在しない..に挿入します

    2. すでにJSON文字列を含むいくつかのフィールドを持つMySQLJSON_OBJECT()

    3. 空間インデックスを使用した null 許容 geography 列での SQL Server 2008 のパフォーマンス

    4. C#— MySQL接続が成功したかどうかを確認する方法、または成功しなかった場合は理由を返すにはどうすればよいですか?