Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 413
  • Last Modified:

How find top 3 records for each part number

I have a table named tblOpenOrders.  The primary key field is named RecID.  Also in the table is a field named Part_No.  I am trying to write a query using query designer that finds the top three records in the table, with RecID being a number field FOR EACH part in Part_No.

So the resulting query might look like:

Part_No       RecID
12345          98234
12345          97620
12345          97100
45612          99124
45612          99005
45612          98307
78451          97890
78451          96120  (sometimes there could be only 2 or 3 records for a given Part_No)
etc.
etc.
etc.
0
SteveL13
Asked:
SteveL13
1 Solution
 
ChloesDadCommented:
The LIMIT function in SQL limits the total number of records returned by the query, it can't be used to limit the number of records that match a sub query.

You would need to do it with an initial query that gets you the PartNo's and then loop through the part numbers to get the top 3 records for each part number.

What do you mean by top 3 by the way? largest Recnum, or something else?
0
 
SteveL13Author Commented:
Yes, largest RecID.
0
 
Rey Obrero (Capricorn1)Commented:
try this query


SELECT tblParts.Part_No, tblParts.RecID
FROM tblParts
WHERE (((tblParts.RecID) In (select top 3 RecID from tblParts as  P where P.Part_No=tblParts.Part_No Order By RecID Desc)))
ORDER BY tblParts.Part_No, tblParts.RecID DESC;
0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now