私はテーブルを持っていますOrderSpecs
。からすべての行を選択する必要がありますがOrderSpecs
、customer ID
各注文の最後の出現(タイムスタンプによる)のみを。で選択しorder ID
ます。また、クエリで検出されたそれぞれのオカレンスの数をカウントしたいと思いますOrderID
。
これが私のテーブルです(重要な情報のみを表示するために要約されています):
OrderSpecs
ID OrderID CustomerID CreatedDate SpecDocument
1 1 5 01/08/2012 11:00:00 *Amendment1*
2 1 5 02/08/2012 15:32:41 *Amendment2*
3 2 31 04/08/2012 16:19:00 *Amendment1*
4 3 5 05/08/2012 12:10:12 *Amendment1*
5 4 10 08/08/2012 09:32:56 *Amendment1*
6 1 5 09/08/2012 11:47:02 *Amendment3*
CustomerID
日付と:で最新の注文行を選択すると、クエリは正常に機能します。
SELECT
ID, CustomerID, EstimateNo, OrderYear, OrderNo, ProductionNo, AddedBy,
AddedDate, SizeLength, SizeWidth, HomeModelID, HomeTypeID, DrawingNo,
CustomerReference, BuildPieces, ProductionPieces, Notes, SpecDocument, OrderID
FROM
OrderSpecs AS o
WHERE
(AddedDate = (SELECT MAX(AddedDate) AS Expr1
FROM OrderSpecs AS i
WHERE (o.OrderID = OrderID)))
AND (CustomerID = @CustomerID)
しかし、それぞれのオカレンスの数を数える方法を理解することはできませんOrderID
。
たとえば、出力テーブルを次のようにします(で検索CustomerID = 5
)。
ID OrderID CustomerID CreatedDate SpecDocument Count
6 1 5 09/08/2012 11:47:02 *Amendment3* 3
4 3 5 05/08/2012 12:10:12 *Amendment1* 1