sql >> データベース >  >> RDS >> Sqlserver

Sql Server 2008 の 3 つのテーブルからのデータの照合

    これを行うには、左結合を使用できると思います。 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
      


    1. MariaDBでのLEFT()のしくみ

    2. より高速なSQLビューを作成するために知っておく必要のあるトップ3のヒント

    3. django.db.utils.OperationalErrorサーバーに接続できませんでした

    4. PDOFetchObjectをオブジェクト属性に変換します。 PHPでのOOP