Oracle
 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Какъв е елегантен начин за връщане на четим „размер на файл“ на файл, съхранен в колона с blob на oracle, използвайки SQL?

  2. Как да вмъкнете множество записи в Oracle DB с помощта на Node.js

  3. Проблеми с TransactionScope и Oracle

  4. Oracle - Как да наложим правила за взаимоотношения в зависимост от записите на атрибути (прост пример)

  5. Оптимизираща заявка:DBMS_METADATA.GET_DDL (Oracle)