Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bandingkan dan masukkan data baru ke dalam tabel berdasarkan bulan

Anda bisa menggunakan tanda minus

select SYS_DB_NAME, ENTITY_ID, MONTH_ID
from my_table 
where MONTH_ID = to_char(sysdate, 'YYYY') || lpad( extract(month from sysdate), 2,'0')
minus  
select  SYS_DB_NAME, ENTITY_ID, MONTH_ID
from my_table 
where MONTH_ID = to_char(sysdate, 'YYYY') || lpad( (extract(month from sysdate) -1) , 2,'0') 

dan jika Anda membutuhkan konten baris

select * from  my_table  m
inner join  (
    select SYS_DB_NAME, ENTITY_ID, MONTH_ID
    from my_table 
    where MONTH_ID = to_char(sysdate, 'YYYY') || lpad( extract(month from sysdate), 2,'0')
    minus  
    select  SYS_DB_NAME, ENTITY_ID, MONTH_ID
    from my_table 
    where MONTH_ID = to_char(sysdate, 'YYYY') || lpad( (extract(month from sysdate) -1) , 2,'0')
) T on m.SYS_DB_NAME = t.SYS_DB_NAME 
      AND m.ENTITY_ID = t.ENTITY_ID 
        AND m.MONTH_ID = t.MONTH_ID

dan jika Anda hanya perlu menghitung

select count(*) from  
inner join  (
    select SYS_DB_NAME, ENTITY_ID, MONTH_ID
    from my_table 
    where MONTH_ID = to_char(sysdate, 'YYYY') || lpad( extract(month from sysdate), 2,'0')
    minus  
    select  SYS_DB_NAME, ENTITY_ID, MONTH_ID
    from my_table 
    where MONTH_ID = to_char(sysdate, 'YYYY') || lpad( (extract(month from sysdate) -1) , 2,'0')
) T


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menulis / memperbarui gumpalan Oracle dengan cara yang andal?

  2. Cara menampilkan PL/SQL dengan benar

  3. tidak ada pernyataan yang diuraikan dan jumlah atau jenis argumen yang salah - cfstoredproc

  4. Oracle RESET_PACKAGE tidak mengatur ulang nilai variabel dalam sesi

  5. ORA-01830:gambar format tanggal berakhir sebelum mengonversi seluruh string input