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

dữ liệu của 4 quý trước

Phần khó khăn là nhận được ngày cuối cùng của quý.

Giải pháp này tính toán ngày bắt đầu của phạm vi bằng cách trừ đi 9 tháng từ ngày mục tiêu và sau đó cắt bớt với 'Q' mặt nạ cho chúng ta ngày đầu tiên của quý. Sau đó, chúng tôi tính toán ngày đó một lần nữa , trừ một ngày rồi cộng mười hai tháng và điều đó cho ngày cuối cùng của quý hiện tại:

with tgt as ( select date '2019-03-30' as dt from dual
              union all select date '2019-02-28' as dt from dual
              union all select date '2019-04-01' as dt from dual
)
select trunc(tgt.dt - interval '9' month, 'Q') as range_st,
       (trunc(tgt.dt - interval '9' month, 'Q') - 1) + interval '12' month as range_end
from tgt
/

Có thể có một giải pháp tuyệt vời ở đó, nhưng đây là lúc kết thúc thời gian nghỉ giải lao của tôi :)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truyền chuỗi thành int và sử dụng trong mệnh đề Where

  2. Có giao diện .Net cho Oracle SQLPLUS không?

  3. Làm cách nào để đóng Oracle DbLinks trong JDBC với nguồn dữ liệu XA và các giao dịch để tránh lỗi ORA-02020?

  4. Oracle - Sự cố khi tạo trình kích hoạt cập nhật bảng khác

  5. Oracle SQL:chọn từ all_tab_columns không tìm thấy cột hiện có