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

Mencocokkan data dari tiga tabel di Sql Server 2008

Saya pikir Anda bisa menggunakan gabungan kiri untuk melakukan ini. Coba kueri ini, dengan data sampel Anda, ini menghasilkan keluaran yang diinginkan, kecuali untuk ApprovedQty , tapi saya tidak mengerti bagaimana Anda sampai di 12 untuk itu dengan contoh datanya :

select 
    d.LOTQty, 
    ApprovedQty = count(d.ProductNo),
    d.DispatchDate,
    Installed = count(a.ProductNo) + count(r.ProductNo)
from 
    Despatch d 
left join 
    Activation a 
     on d.ProductNo = a.ProductNo 
    and d.DispatchDate < a.ActivationDate 
    and d.LOTQty = a.LOTQty
left join 
    Replaced r 
      on d.ProductNo = r.ProductNo 
     and d.DispatchDate < r.RecordDate
     -- only count Replaced when there is no match in Activation
     -- or DispatchDate is greater then ActivationDate
     and (a.ActivationDate is null or a.ActivationDate < d.DispatchDate)
where 
    d.LOTQty = 20
group by 
    d.LOTQty, d.DispatchDate

ini akan menghasilkan:

LOTQty  ApprovedQty DispatchDate    Installed
20      6           2013-08-07      5



  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 mengganti string di Kolom Tabel SQL Server

  2. Bagaimana cara mengatur ukuran file database awal dan pertumbuhan file dalam proyek database?

  3. Subsonic 2.2 Generated Property untuk SQL Server 2008 Date

  4. Adakah alasan untuk menginstal SQL Server 2005 dan 2008 pada mesin yang sama?

  5. Enkripsi Cadangan Basis Data SQL Server