Let us see how to find the first and last record of a table based on a criteria. For demonstration purpose we will be using the 'Orders' table of the Northwind database. Our criteria in this example will be to find the First and Last Record of the Customer 'ALFKI' in this table.
Here's the query to do so:
WITH CTE
AS
(SELECT CustomerID,OrderDate,Freight,ShipName,
ROW_NUMBER() OVER(PARTITION BY CustomerID ORDER BY OrderDate) as StartRec,
ROW_NUMBER() OVER(PARTITION BY CustomerID ORDER BY OrderDate DESC) as EndRec
FROM ORDERS WHERE CustomerID='ALFKI')
SELECT CustomerID,OrderDate,Freight,ShipName
FROM CTE WHERE StartRec=1 or EndRec=1
ORDER BY OrderDate
Note: If you wish to find out the first and last record for all the customers in this table, just remove the condition WHERE CustomerID = 'ALFKI'.
About The Author
Suprotim Agarwal, MCSD, MCAD, MCDBA, MCSE, is the founder of
DotNetCurry,
DNC Magazine for Developers,
SQLServerCurry and
DevCurry. He has also authored a couple of books
51 Recipes using jQuery with ASP.NET Controls and a new one recently at
The Absolutely Awesome jQuery CookBook.
Suprotim has received the prestigous Microsoft MVP award for nine times in a row now. In a professional capacity, he is the CEO of A2Z Knowledge Visuals Pvt Ltd, a digital group that represents premium web sites and digital publications comprising of Professional web, windows, mobile and cloud developers, technical managers, and architects.
Get in touch with him on Twitter @suprotimagarwal, LinkedIn or befriend him on Facebook
No comments:
Post a Comment