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

Tampilkan data dari tabel meskipun tidak ada data!! Peramal

Pertama, sepertinya aplikasi Anda akan mendapat manfaat dari tabel kalender. Tabel kalender adalah daftar tanggal dan informasi tentang tanggal.

Kedua, Anda dapat melakukan ini tanpa menggunakan tabel sementara. Inilah pendekatannya:

with constants as (select min(thedate>) as firstdate from <table>)
     dates as (select( <firstdate> + rownum - 1) as thedate
               from (select rownum
                     from <table> cross join constants
                     where rownum < sysdate - <firstdate> + 1
                    ) seq
              )
select dates.thedate, count(t.date)
from dates left outer join
     <table> t
     on t.date = dates.thedate
group by dates.thedate

Inilah idenya. Konstanta alias mencatat tanggal paling awal di tabel Anda. Tanggal alias kemudian membuat urutan tanggal. Subquery dalam menghitung urutan bilangan bulat, menggunakan rownum, dan kemudian menambahkannya ke tanggal pertama. Perhatikan ini mengasumsikan bahwa Anda memiliki rata-rata setidaknya satu transaksi per tanggal. Jika tidak, Anda dapat menggunakan tabel yang lebih besar.

Bagian terakhir adalah join yang digunakan untuk mengembalikan informasi tentang tanggal. Perhatikan penggunaan count(t.date) alih-alih count(*). Ini menghitung jumlah catatan di tabel Anda, yang seharusnya 0 untuk tanggal tanpa data.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengambil nilai dari 3 tabel

  2. PL/SQL FTP API biner vs mode ascii

  3. Klien instan Oracle dengan permata Ruby-oci8 tidak dapat terhubung dengan DB di Rails c

  4. Cara memanggil sampel helloword func menggunakan kode java

  5. REGEX untuk memilih nilai ke-n dari daftar, memungkinkan untuk nol