Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Mengekstrak data dari MS SQL Server-2008 merujuk beberapa tabel

Melanjutkan kueri sebelumnya, saya pikir kolom baru dapat ditambahkan dengan agregasi bersyarat dalam pernyataan pilih dan gabungan kiri lainnya untuk tabel yang gagal.

Ini seharusnya berhasil, tetapi saya yakin kueri dapat ditingkatkan:

select 
    d.LOTQty, 
    ApprovedQty = count(d.SerialNo),
    d.DispatchDate,
    Installed = count(a.SerialNo) + count(r.NewSerialNo),
    DOA    = sum(case when datediff(day, coalesce(a.ActivationDate,r.RecordDate), f.FailedDate) <= 10 then 1 else 0 end),
    Bounce = sum(case when datediff(day, coalesce(a.ActivationDate,r.RecordDate), f.FailedDate) between 11 and 180 then 1 else 0 end)
from 
    Despatch d 
left join 
    Activation a 
     on d.SerialNo= a.SerialNo
    and d.DispatchDate <= a.ActivationDate 
    and d.LOTQty = a.LOTQty
left join 
    Replaced r 
      on d.SerialNo= r.NewSerialNo
     and d.DispatchDate <= r.RecordDate
     and (a.ActivationDate is null or a.ActivationDate < d.DispatchDate)
left join 
    Failed f 
      on (f.FailedSINo = a.SerialNo)
      or (f.FailedSINo = r.NewSerialNo)     
where 
    d.LOTQty = 15
group by 
    d.LOTQty, d.DispatchDate

Contoh SQL Fiddle dengan data uji




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ubah Sql-Server (express) dari instance bernama ke localhost?

  2. Bagaimana cara mendaftarkan System.DirectoryServices untuk digunakan dalam Fungsi Pengguna SQL CLR?

  3. Perbarui data yang sama dari tabel yang sama

  4. Pernyataan Ganti Pembaruan SQL

  5. Temukan nilai maksimal dan tampilkan nilai yang sesuai dari bidang yang berbeda di server SQL