Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Trích xuất dữ liệu từ MS SQL Server-2008 tham chiếu nhiều bảng

Tiếp tục truy vấn trước đó, tôi nghĩ rằng các cột mới có thể được thêm vào với một tập hợp có điều kiện trong câu lệnh select và một phép nối bên trái khác cho bảng bị lỗi.

Điều này sẽ hoạt động, nhưng tôi chắc chắn rằng truy vấn có thể được cải thiện:

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

Fiddle SQL mẫu với dữ liệu thử nghiệm




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách bật tính năng ghi dữ liệu thay đổi (CDC) trên toàn bộ bảng HOẶC bật CDC trên bảng có danh sách cột trong SQL Server

  2. SQL chọn nơi không có trong truy vấn con không trả về kết quả

  3. sql địa lý để dbgeography?

  4. Máy chủ SQL phiên bản 655

  5. SQL Server Tạo chỉ mục dạng xem chứa phân biệt hoặc nhóm theo