これを行うには、左結合を使用できると思います。 ApprovedQty
を除いて、サンプル データを使用してこのクエリを試してください。目的の出力が生成されます。 、しかし、どうやって 12
にたどり着いたのかわかりません そのためのサンプルデータ:
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
プレ>これは次のように出力されます:
LOTQty ApprovedQty DispatchDate Installed 20 6 2013-08-07 5
プレ>