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

SQLで四半期の月に基づいてデータを取得します

    このようなクエリが必要です。必ずNULLを含めてください 将来の日付または過去の日付のレコードが欠落している場合は、Data1、Data2をチェックし、必要に応じてデフォルトでゼロに設定します。

    select To_CHAR(Month,'MON-YY') Month,
            CASE 
                    WHEN MOD ( EXTRACT ( MONTH FROM Month ), 3 ) = 1 
                    THEN Data2 + LEAD ( Data2 ,1) OVER ( ORDER BY Month ) + LEAD ( Data2 ,2) OVER ( ORDER BY Month )
                    WHEN MOD ( EXTRACT ( MONTH FROM Month ), 3 ) = 2 
                    THEN LAG(Data1,1) OVER ( ORDER By Month ) + Data2 + LEAD ( Data2 ,1) OVER ( ORDER BY Month )
                    WHEN MOD ( EXTRACT ( MONTH FROM Month ), 3 ) = 0 
                    THEN LAG(Data1,2) OVER ( ORDER By Month ) + LAG(Data1,1) OVER ( ORDER By Month )+Data2
            END data
    FROM 
            Table1;
    

    SQLFiddle




    1. Oracle11Gで最も古いパーティションを自動的に削除します

    2. mysqlを使用して別のページに人々を送る方法

    3. 個別の値とその数を返す方法は?

    4. PostgreSQLを使用したSQLAlchemyテストでのデータベースの作成