sql >> Database teknologi >  >> RDS >> Sqlserver

Udtræk af data fra MS SQL Server-2008, der henviser til flere tabeller

Hvis jeg fortsætter med den forrige forespørgsel, tror jeg, at de nye kolonner kunne tilføjes med en betinget aggregering i select-sætningen og en anden venstre join for den mislykkede tabel.

Dette burde virke, men jeg er sikker på, at forespørgslen kan forbedres:

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

Sample SQL Fiddle med testdata




  1. Tilføj tredjeparts dll-reference i ssis-scriptkomponent

  2. Hvordan vælger jeg den længste 'streng' fra en tabel, når jeg grupperer

  3. Udfyld HTML/PHP dropdown baseret på første dropdown valg

  4. Hvordan kan VBA oprette forbindelse til MySQL-database i Excel?