Subtask 05.06

More Complex Queries

09. Hey, what states are our publishers in and how many publishers are in each state? I don't need the names of the publishers; I just need the number in each state. But I do need to see them sorted by the number in each state with the largest number first.

Now you start to add the use of functions to manipulate the results

  • this requires opening the Totals () field in the QBE grid
  • show a count of the number of publishers in each state
    • you need to add a criteria that will eliminate all records that have no value in the state field from being counted

Sort by number and then by state, in that order


10. The fire insurance people need to know how much our book stocks are worth. We need a list of the replacement costs for each our books. They don't need to know the individual cost or the number of copies we have, but they do want to see the replacement costs from largest to smallest, to include the titles of the books that will need replacing.

For each book, show:

  • the book title and the total monetary value of that stock of that particular book
  • call this field Total Value and format it to display as currency

More functions, but instead of using a function on the results of a select query, you now you have to use the Build tool to create a new value that doesn't exist in the table as it stands

  • multiply the number of each title by its retail cost and format the results to display as currency

Sort by Total Value, then by book title, in that order


11. What and how many books do we have on order and how much of a break are we getting on the price? I need to know how much of a price break we get on each book and total savings we are getting on each order.


  • the name of each book ordered
  • the number of books ordered
  • the price break of each book - call this field Price Break
  • and the total of the savings per order - call this field Total Savings

This will require

  • a simple select query that requires data to be pulled from several different tables and a formula that applies to two different tables
  • you may need to include some fields in the query, but not show them in the results

Sort by Total Savings, then by book title, in that order


12. I need to rattle some publisher cages about slow deliveries. Get me a list of the publishers as well as their cities and states (or countries). Sort it by publishers because I also want to see how many of each title we have ordered from each one and how much each order will cost if we have to buy it locally at full retail price.

This calls for values from all orders, whether already delivered or not. Show:

  • the name of each publisher of the book ordered
  • the name of each book ordered
  • the cost of the order if it has to be purchased at the book retail price (the number of books on an order multiplied by the retail price of that particular title)
  • the state and/or country for each publisher

You will need the number of books ordered, but not in the results of the query

  • again, a query that calls for values from multiple tables, with an expression
  • don't forget to SUM the total cost, in case you have more than one order for the same book at the same price

Sort by the total cost of the order, then by the publisher name, in that order


13. For no particular reason, of the books in our collection, I would like to know what authors are published by what publishers and how many titles each author has by that publisher. Make it so I can do it by individual publisher.

Include in the query design:

  • a non-showing parameter that will allow me to enter the publisher I wish to query
  • the number of book titles associated with each author that is published by that publisher
  • the name of the authors that are associated with that publisher

Sort so that the number of titles shows the largest number of titles per author to the smallest number of titles per author, and the associated authors are sorted alphabetically. Arrange the resultant datasets first by titles per author, then by associated authors.


14. OK, this is the last request. Our investments have lost value and this has cut into our budget. We need to know where we can save some money fast. Get a list of all our outstanding orders, ones that we have sent to the publishers, but that the publishers have not yet filled. We need to see how much money we have allocated for these orders so we can cancel them if we have to. I promise, this is the last one.

This query could be the source of a report, which would present a formatted paper copy of the result of this query.

For each distinct order that has not been received yet, show only the following fields:

  • the date of the order
  • the book title
  • the publisher name
  • the discount price of the book
  • the number of books ordered, and
  • the total amount of money owed to the publisher for that order.
    • (Call the last field Amount Owed)
    • a shipment is not paid for until it is received

This calls for a select across multiple tables, newly built fields of new data, application of functions, and use of the NULL criteria. This is a request for a list of things that have not yet happened, not a list of things that have happened already.

Sort by the publisher name, then by the book title, and then by the date of the order.


more complex queries | SUBTASK 05.06 | next session