New Feature: Playlist Center! Pick a topic and let our playlists guide the way.

Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member

Embedding SQL code in queries

From: Access 2010: Queries in Depth

Video: Embedding SQL code in queries

Sometimes you will want to include records in your query based upon the results of another query. Often this may include a calculation based upon your data. For instance, instead of just selecting values that are above or below a specific and static number, you may want to select values that are above or below the average of the entire set. In other words, you'll first need to find out what the mathematical average is and then use that value to define the criteria. You can do this by writing an SQL statement right into the field or criteria rows of your query.

Embedding SQL code in queries

Sometimes you will want to include records in your query based upon the results of another query. Often this may include a calculation based upon your data. For instance, instead of just selecting values that are above or below a specific and static number, you may want to select values that are above or below the average of the entire set. In other words, you'll first need to find out what the mathematical average is and then use that value to define the criteria. You can do this by writing an SQL statement right into the field or criteria rows of your query.

So let's construct a query that asks which customers have placed above average orders. Let's go into our Create menu and then Query Design. We'll add our Orders table and our Products table and click Close. So the first thing we need to do is find the average order total across our entire database. We can do that by adding Price to our query, turning on our Totals row, and then changing the Group By to Average.

If I run this query, I see that my average price over the whole database is $29.87. Let's go ahead and back into our Design view and I'll give this an alias to denote what this value is. This is Average Transaction. I'll run the query one more time to make sure we're getting the right results and I can see that we got Average Transaction. Now my Average Transaction reads $29.87. Your average might slightly differ.

Earlier in this chapter, I deleted several records from my database and used them to create an archive database. If you didn't complete those steps, you'll have more records in your current database and your average will be different. Let's go ahead and switch into SQL view so we can see the statement that was constructed in Design view. I'll click on my View menu and I'll choose SQL. Here is the statement that Access has constructed. I'm going to go ahead and copy this statement to the Clipboard and we'll use it later on. So I highlight it and press Ctrl+C to copy it to my Clipboard.

So now that we have an SQL SELECT statement that calculates the average price across our entire database, we can use this as a criteria in another query. Let's go back to our Create menu. We'll do a new query in Design view. This time we want to find out which customers have placed orders that were above the average. The tables I'll choose are DirectCustomers, our Orders table, and the Products table. Go ahead and say Close. Now from our tables, we'll choose a couple fields.

And first I want CustID and FirstName. From my Products table, I'll choose Price. The criteria for Price is anything above the average. So I'll right-click here and say Zoom to bring up my Zoom box. So I'm looking for everything above average. I'll say greater than or equal to and then an open parenthesis. Then I'll paste the SELECT statement that we copied to our Clipboard from the other query. Ctrl+V to paste that in. I'll close the statement with a closing parenthesis.

So now I have an embedded SQL statement right in my Criteria field. We'll go ahead and say OK and I'll run my query. Now in my records, I've got a total of about 168 customers that have placed an order that is higher than the average for my entire data set. As my database grows and more transactions are added to it, the average will move up or down and this query will automatically update to show me all of the customers that are above the current average.

Now that that SQL statement is embedded into this query, I no longer need the first one that I made. I don't even have to save it into my navigation pane. I'll go ahead and just close it, I don't need to save changes, and that statement is permanently saved within this query. The SQL sub-query can be a useful tool in keeping your database clean of extraneous pieces. By combining two queries into a single standalone query, you can eliminate clutter in your navigation pane while reviewing a very specific subset of your data.

Show transcript

This video is part of

Image for Access 2010: Queries in Depth
Access 2010: Queries in Depth

46 video lessons · 13234 viewers

Adam Wilbert
Author

 
Expand all | Collapse all
  1. 9m 9s
    1. Welcome
      1m 10s
    2. Using the exercise files
      41s
    3. Introducing the database
      4m 29s
    4. Previewing the course
      2m 49s
  2. 17m 17s
    1. Understanding queries
      3m 31s
    2. Following naming conventions and best practices
      2m 56s
    3. Using the Query Wizard
      5m 21s
    4. Exploring the design interface
      5m 29s
  3. 26m 39s
    1. Defining criteria
      5m 40s
    2. Understanding comparison operators
      3m 19s
    3. Defining the column headers
      2m 49s
    4. Exploring the property sheet
      7m 32s
    5. Printing query results
      2m 41s
    6. Working with joins
      4m 38s
  4. 14m 14s
    1. Understanding parameter queries
      4m 27s
    2. Obtaining parameters from forms
      5m 17s
    3. Creating a combo box
      4m 30s
  5. 23m 24s
    1. Understanding the Totals field
      5m 31s
    2. Creating aggregate calculations
      3m 31s
    3. Exploring the Expression Builder interface
      4m 28s
    4. Using mathematical operators
      5m 46s
    5. Applying text functions
      4m 8s
  6. 24m 23s
    1. Understanding dates as serial numbers
      2m 42s
    2. Specifying a range of dates or times
      3m 47s
    3. Formatting dates
      4m 31s
    4. Using other Date/Time functions
      3m 47s
    5. Defining today's date
      2m 41s
    6. Calculating time intervals
      6m 55s
  7. 20m 9s
    1. Introducing the conditional IIf function
      2m 57s
    2. Creating an IIf function
      7m 31s
    3. Nesting IIf functions
      4m 57s
    4. Using the Switch function
      4m 44s
  8. 20m 41s
    1. Understanding the reporting tool
      2m 13s
    2. Building the form
      6m 57s
    3. Building the query
      5m 4s
    4. Building the report
      3m 30s
    5. Finalizing the reporting tool
      2m 57s
  9. 25m 37s
    1. Finding duplicate records
      2m 17s
    2. Identifying unmatched records
      2m 29s
    3. Creating crosstab results
      2m 57s
    4. Creating backups
      1m 29s
    5. Creating update queries
      3m 22s
    6. Making, deleting, and appending records
      5m 36s
    7. Uniting tables
      3m 16s
    8. Embedding SQL code in queries
      4m 11s
  10. 1m 0s
    1. Next Steps
      1m 0s

Start learning today

Get unlimited access to all courses for just $25/month.

Become a member
Sometimes @lynda teaches me how to use a program and sometimes Lynda.com changes my life forever. @JosefShutter
@lynda lynda.com is an absolute life saver when it comes to learning todays software. Definitely recommend it! #higherlearning @Michael_Caraway
@lynda The best thing online! Your database of courses is great! To the mark and very helpful. Thanks! @ru22more
Got to create something yesterday I never thought I could do. #thanks @lynda @Ngventurella
I really do love @lynda as a learning platform. Never stop learning and developing, it’s probably our greatest gift as a species! @soundslikedavid
@lynda just subscribed to lynda.com all I can say its brilliant join now trust me @ButchSamurai
@lynda is an awesome resource. The membership is priceless if you take advantage of it. @diabetic_techie
One of the best decision I made this year. Buy a 1yr subscription to @lynda @cybercaptive
guys lynda.com (@lynda) is the best. So far I’ve learned Java, principles of OO programming, and now learning about MS project @lucasmitchell
Signed back up to @lynda dot com. I’ve missed it!! Proper geeking out right now! #timetolearn #geek @JayGodbold

Are you sure you want to delete this note?

No

Thanks for signing up.

We’ll send you a confirmation email shortly.


Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

Keep up with news, tips, and latest courses with emails from lynda.com.

Sign up and receive emails about lynda.com and our online training library:

Here’s our privacy policy with more details about how we handle your information.

   
submit Lightbox submit clicked
Terms and conditions of use

We've updated our terms and conditions (now called terms of service).Go
Review and accept our updated terms of service.