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

T-SQLサブクエリMax(Date)と結合

    サブクエリなしでそれを行う別の方法があります。この方法は他の方法よりも優れていることが多いため、両方の方法をテストして、どちらが最高のパフォーマンスを発揮するかを確認する価値があります。

    SELECT
         PRT.PartID,
         PRT.PartNumber,
         PRT.Description,
         PRC1.Price,
         PRC1.PriceDate
    FROM
         MyParts PRT
    LEFT OUTER JOIN MyPrices PRC1 ON
         PRC1.PartID = PRT.PartID
    LEFT OUTER JOIN MyPrices PRC2 ON
         PRC2.PartID = PRC1.PartID AND
         PRC2.PriceDate > PRC1.PriceDate
    WHERE
         PRC2.PartID IS NULL
    

    同じ正確なPriceDateで2つの価格がある場合、これにより複数の結果が得られます(他のほとんどのソリューションでも同じようになります)。また、私は将来の最終価格の日付を説明するものは何もありません。最終的にどの方法を使用するかに関係なく、そのチェックを検討することをお勧めします。



    1. SalesforceAPIクエリのカーソル制限

    2. [01000] [unixODBC][ドライバーマネージャー]libを開けません'/usr/local/easysoft/oracle/InstantClient112/lib/libsqora.so':ファイルが見つかりません

    3. Oracle18cおよび19cのドロップ列のバグへの対処

    4. パフォーマンスの神話:クラスター化インデックスと非クラスター化インデックス