この質問は、私よりもSQLの経験が豊富な人を対象としています。
最新のエントリが直前に入力されたものと同等である場合に行数を選択するクエリ(最終的にはストアドプロシージャになりますが、これは関係ありません)を作成しています。そして、別の値を持つエントリに到達するまで、これを続けたいと思います。(説明が不十分なので、例を示します)
私のテーブルには「Product_Id」という列があり、このクエリを実行するときに、product_idを取得して、以前に入力した製品IDと比較します。同じ場合は、追加したいので、チェックを続けます。別のproduct_idに遭遇するまで、以前にproduct_idを入力しました
それが実際よりも複雑に聞こえることを願っています、そしてクエリは次のようになります
Select count(Product_ID)
FROM dbo.myTable
Where Product_Id = previous(Product_Id)
さて、previousはTSQLのキーワードではなく、Lastでもないことはわかっていますが、私が求めていることを実行するキーワードを知っている人を望んでいます。
サムのために編集
USE DbName; GO WITH OrderedCount as ( select ROW_NUMBER() OVER (Order by dbo.Line_Production.Run_Date DESC) as RowNumber, Line_Production.Product_ID From dbo.Line_Production ) Select RowNumber, COUNT(OrderedCount.Product_ID) as PalletCount From OrderedCount WHERE OrderedCount.RowNumber + 1 = RowNumber and Product_ID = Product_ID Group by RowNumber
OrderedCount部分が機能し、データが希望どおりに返されます。現在、さまざまなRowNumberのProduct_IDを比較するのに問題があります。
私のWhere句が間違っている