Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Tìm nạp dữ liệu dựa trên tháng của một quý tính bằng sql

Bạn cần một truy vấn như thế này. Đảm bảo bạn bao gồm NULL kiểm tra Data1, Data2 khi thiếu các bản ghi cho các ngày trong tương lai hoặc các ngày trong quá khứ và mặc định nó bằng 0 nếu cần.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Điều hướng từ Ứng dụng A đến Ứng dụng B với cùng một thông tin xác thực - APEX 19.2

  2. bảng hoặc chế độ xem không tồn tại

  3. Oracle Julian ngày trong năm

  4. cách xuất đầu ra ở định dạng CSV thông qua một thủ tục

  5. Oracle tạo bảng dưới dạng giá trị null