ACC2000: How to Use a Query to Filter Unique Data (209793)



The information in this article applies to:

  • Microsoft Access 2000

This article was previously published under Q209793
Novice: Requires knowledge of the user interface on single-user computers.

This article applies only to a Microsoft Access database (.mdb).

For a Microsoft Access 2002 version of this article, see 292634.

SUMMARY

When you filter a table to eliminate duplicate data, use a query that uses one of the aggregate (totals) functions, such as First(), Last(), Min(), or Max(), in the fields that do not contain duplicate data. In the fields that do contain duplicate data, use the GroupBy() function.

NOTE: You can see a demonstration of the technique that is used in this article in the sample file Qrysmp00.exe. For information about how to obtain this sample file, please see the following article in the Microsoft Knowledge Base:

207626 ACC2000: Access 2000 Sample Queries Available in Download Center

MORE INFORMATION

For example, suppose you import an inventory table from an application and discover that the data has duplicates in it. To get the data back down to a baseline, such as one record per product, so that you can then re-inventory and have a correct and complete set of data, use a query to filter the data.

Suppose the table looks as follows:
   ProdID   Description   Cost   MarkUp    Quantity
   ------------------------------------------------
   1        A Product     $1.50  0.5      10
   2        B Product     $2.50  0.7      100
   3        C Product     $1.59  0.9      25
   2        D Product     $4.59  0.8      30
   5        E Product     $1.99  0.7      40
   6        F Product     $2.69  0.4      60
   9        G Product     $4.95  0.8      20
   8        H Product     $6.79  0.9      32
   9        I Product     $6.89  0.7      0
   1        J Product     $2.99  0.5      11
				
If you want to filter the table so that it has a unique ProdID code and the first entry from each of the other fields, do the following:
  1. Create a new query based on the original table.
  2. Add all the fields from the field list to the query design grid.
  3. On the View menu, click Totals.
  4. Set the Total row of the query design grid to First for every field except ProdID. Set ProdID to Group By.
  5. On the View menu, click Datasheet View.
The data that you see should be a list of unique ProdID data with the first value that is encountered for that product in each of the other fields. If you use this procedure on the sample table, your result is as follows:
   ProdID   Description   Cost   MarkUp   Quantity
   -----------------------------------------------
   1        A Product     $1.50  0.5      10
   2        B Product     $2.50  0.7      100
   3        C Product     $1.59  0.9      25
   5        E Product     $1.99  0.7      40
   6        F Product     $2.69  0.4      60
   8        H Product     $6.79  0.9      32
   9        G Product     $4.95  0.8      20
				
To obtain different results, use the Max(), Min(), or Last() function instead of the First function().

To generate a unique table from this query, change the query type to a make-table query in Design view of the query.

NOTE: This query returns unique data. To find duplicate records and to edit the records, or to choose which records to keep, use the Find Duplicates Query Wizard.

REFERENCES

For more information about using make-table queries, click Microsoft Access Help on the Help menu, type make table in the Office Assistant or the Answer Wizard, and then click Search to view the topics returned.

Modification Type:MajorLast Reviewed:6/24/2004
Keywords:kbhowto KB209793