1 Copyright © 2010 Jerry Post with additions & narration by M. E. Kabay. All rights reserved. Advanced Queries IS240 – DBMS Lecture # 8 – 2010-03-08 M.

Slides:



Advertisements
Similar presentations
1 All Powder Board and Ski Microsoft Access Workbook Chapter 5: Advanced Queries Jerry Post Copyright © 2007.
Advertisements

Multiple Table Queries
© 2007 by Prentice Hall (Hoffer, Prescott & McFadden) 1 Joins and Sub-queries in SQL.
A Guide to SQL, Seventh Edition. Objectives Use joins to retrieve data from more than one table Use the IN and EXISTS operators to query multiple tables.
Jerry Post Copyright © Database Management Systems Chapter 5 Advanced Queries.
Using Relational Databases and SQL Steven Emory Department of Computer Science California State University, Los Angeles Lecture 7: Subqueries and Set Operations.
1 Materi Pendukung Pertemuan > Transaksi pendukung pada SQL Matakuliah: >/ > Tahun: > Versi: >
Module 6: Working with Subqueries. Overview Introduction to Subqueries Using a Subquery as a Derived Table Using a Subquery as an Expression Using a Subquery.
Instructor: Craig Duckett CASE, ORDER BY, GROUP BY, HAVING, Subqueries
5 Chapter 5 Structured Query Language (SQL2) Revision.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 8 Advanced SQL.
DATABASE APPLICATION DEVELOPMENT SAK 3408 Query Statements.
Using Relational Databases and SQL Steven Emory Department of Computer Science California State University, Los Angeles Lecture 5: Subqueries and Set Operations.
Jerry Post McGraw-Hill/Irwin Copyright © 2005 by The McGraw-Hill Companies, Inc. All rights reserved. Database Management Systems Chapter 4 Data Queries.
1.NET Web Forms Database Queries © 2002 by Jerry Post.
Objectives After completing this lesson, you should be able to do the following: Define subqueries Describe the types of problems that the subqueries.
Copyright © 2010 M. E. Kabay. All rights reserved. Analyzing and Building Simple Queries in SQL IS240 – Database Management Supplement to Chapter 4 M.
Jerry Post Copyright © 2013 DATABASE Database Management Systems Chapter 5 Advanced Queries 1.
Using Relational Databases and SQL Department of Computer Science California State University, Los Angeles Lecture 8: Subqueries.
Jerry Post Copyright © Database Management Systems Chapter 4 Queries.
Chapter 3 Query Language Database Application SAK 3408.
Introduction to Databases Chapter 7: Data Access and Manipulation.
Chapter 4 Querying Based on G. Post, DBMS: Designing & Building Business Applications University of Manitoba Asper School of Business 3500 DBMS Bob Travica.
Jerry Post Copyright © Database Management Systems Chapter 5 Advanced Queries.
Banner and the SQL Select Statement: Part Four (Multiple Connected Select Statements) Mark Holliday Department of Mathematics and Computer Science Western.
1 All Powder Board and Ski Microsoft Access Workbook Chapter 4: Queries Jerry Post Copyright © 2007.
Chapter 5 Advanced Querying
SQL advanced select using Oracle 1 7. Multiple Tables: Joins and Set Operations 8. Subqueries: Nested Queries.
A Guide to MySQL 5. 2 Objectives Use joins to retrieve data from more than one table Use the IN and EXISTS operators to query multiple tables Use a subquery.
1 All Powder Board and Ski Oracle 9i Workbook Chapter 7: Integrity and Transactions Jerry Post Copyright © 2003.
Jerry Post Copyright © Database Management Systems Chapter 4 Queries.
School of Computer & Communication of LNPU 辽宁石油化工大学计算机与通信工程学院 刘旸 1 数据库管理系统 Database Management Systems Chapter4 Queries 第四章 数据查询.
1 Single Table Queries. 2 Objectives  SELECT, WHERE  AND / OR / NOT conditions  Computed columns  LIKE, IN, BETWEEN operators  ORDER BY, GROUP BY,
1.NET Web Forms Business Forms © 2002 by Jerry Post.
1 All Powder Board and Ski Oracle 9i Workbook Chapter 9: Database Administration Jerry Post Copyright © 2003.
Jerry Post Copyright © Database Management Systems Chapter 5 Advanced Queries.
劉 志 俊 (Chih-Chin Liu) 中華大學 資訊工程系 October 2001 Chap 9 SQL (III): Advanced Queries.
6 1 Lecture 8: Introduction to Structured Query Language (SQL) J. S. Chou, P.E., Ph.D.
1 All Powder Board and Ski Oracle 9i Workbook Chapter 4: Queries Jerry Post Copyright © 2003.
1 Chapter 10 Joins and Subqueries. 2 Joins & Subqueries Joins – Methods to combine data from multiple tables – Optimizer information can be limited based.
Concepts of Database Management Eighth Edition Chapter 3 The Relational Model 2: SQL.
1 Copyright © 2010 Jerry Post & M. E. Kabay. All rights reserved. Queries: Part 2 of 2 IS240 – DBMS Lecture # 7 – M. E. Kabay, PhD, CISSP-ISSMP.
1 All Powder Board and Ski Microsoft Access Workbook Chapter 8: Data Warehouses and Data Mining Jerry Post Copyright © 2003.
SQL advanced select using Oracle 1. 2 Select Simple –data from a single table Advanced –data from more tables join sub-queries.
1 All Powder Board and Ski Microsoft Access Workbook Chapter 4: Queries Jerry Post Copyright © 2003.
School of Computer & Communication of LNPU 辽宁石油化工大学计算机与通信工程学院 刘旸 1 数据库管理系统 Database Management Systems Chapter5 Advanced Queries 第五章 高级查询和子查询.
SqlExam1Review.ppt EXAM - 1. SQL stands for -- Structured Query Language Putting a manual database on a computer ensures? Data is more current Data is.
A Guide to SQL, Eighth Edition Chapter Five Multiple-Table Queries.
1 All Powder Board and Ski Microsoft Access Workbook Chapter 5: Advanced Queries Jerry Post Copyright © 2003.
A Guide to SQL, Eighth Edition Chapter Four Single-Table Queries.
1 Copyright © 2010 Jerry Post & M. E. Kabay. All rights reserved. Queries: Part 1 of 2 IS240 – DBMS Lecture # 6 – M. E. Kabay, PhD, CISSP-ISSMP.
Jerry Post McGraw-Hill/Irwin Copyright © 2005 by The McGraw-Hill Companies, Inc. All rights reserved. Database Management Systems Chapter 4 Data Queries.
MIS2502: Data Analytics SQL – Getting Information Out of a Database.
Manipulating Data Lesson 3. Objectives Queries The SELECT query to retrieve or extract data from one table, how to retrieve or extract data by using.
1 Chapter 3 Single Table Queries. 2 Simple Queries Query - a question represented in a way that the DBMS can understand Basic format SELECT-FROM Optional.
Jerry Post Copyright © Database Management Systems Chapter 4 Queries.
1 All Powder Board and Ski SQL Server Workbook Chapter 5: Advanced Queries Jerry Post Copyright © 2003.
1 Ch4 Summary Prepared by : Moshira M. Ali CS490 Coordinator Arab Open University.
McGraw-Hill/Irwin Copyright © 2005 by The McGraw-Hill Companies, Inc. All rights reserved. Chapter 9: Database Administration All Powder Board and Ski.
Advanced Query Analysis
Chapter 6: Forms, Reports and Applications All Powder Board and Ski
Queries: Part 1 of 2 IS240 – DBMS Lecture # 6 –
Writing Basic SQL SELECT Statements
M. E. Kabay, PhD, CISSP-ISSMP V:
Prepared by : Moshira M. Ali CS490 Coordinator Arab Open University
Instructor: Craig Duckett Lecture 09: Tuesday, April 25th, 2017
All Powder Board and Ski
DB Integrity & Transactions Part 2
David M. Kroenke and David J
Analyzing and Building Simple Queries in SQL
Presentation transcript:

1 Copyright © 2010 Jerry Post with additions & narration by M. E. Kabay. All rights reserved. Advanced Queries IS240 – DBMS Lecture # 8 – M. E. Kabay, PhD, CISSP-ISSMP Assoc. Prof. Information Assurance Division of Business & Management, Norwich University V:

2 Copyright © 2010 Jerry Post with additions & narration by M. E. Kabay. All rights reserved. Topics  Sub-query for Calculation  Query Sets (IN)  Using IN with a Sub-query  Left Outer Join  Older Syntax for Left Join  SubQuery for Computation  Correlated Subquery  UNION Operator  Multiple JOIN Columns  CASE Function  Inequality Join  SQL SELECT & SQL Mnemonic

3 Copyright © 2010 Jerry Post with additions & narration by M. E. Kabay. All rights reserved. Tables

4 Copyright © 2010 Jerry Post with additions & narration by M. E. Kabay. All rights reserved. Harder Questions  How many cats are “in- stock” on 10/1/04?  Which cats sold for more than the average price?  Which animals sold for more than the average price of animals in their category?  Which animals have not been sold?  Which customers (who bought something at least once) did not buy anything between 11/1/04 and 12/31/04?  Which customers who bought Dogs also bought products for Cats (at any time)?

5 Copyright © 2010 Jerry Post with additions & narration by M. E. Kabay. All rights reserved. Sub-query for Calculation  Which cats sold for more than the average sale price of cats?  Assume we know the average price is $170.  Usually we need to compute it first. SELECT SaleAnimal.AnimalID, Animal.Category, SaleAnimal.SalePrice FROM Animal INNER JOIN SaleAnimal ON Animal.AnimalID = SaleAnimal.AnimalID WHERE ((Animal.Category=‘Cat’) AND (SaleAnimal.SalePrice>170)); SELECT SaleAnimal.AnimalID, Animal.Category, SaleAnimal.SalePrice FROM Animal INNER JOIN SaleAnimal ON Animal.AnimalID = SaleAnimal.AnimalID WHERE ((Animal.Category=‘Cat’) AND (SaleAnimal.SalePrice> (SELECT AVG(SalePrice) FROM Animal INNER JOIN SaleAnimal ON Animal.AnimalID = SaleAnimal.AnimalID WHERE (Animal.Category=‘Cat’) ) ) );

6 Copyright © 2010 Jerry Post with additions & narration by M. E. Kabay. All rights reserved. Query Sets (IN) List all customers (Name) who purchased one of the following items: 1, 2, 30, 32, 33. SELECT Customer.LastName, Customer.FirstName, SaleItem.ItemID FROM (Customer INNER JOIN Sale ON Customer.CustomerID = Sale.CustomerID) INNER JOIN SaleItem ON Sale.SaleID = SaleItem.SaleID WHERE (SaleItem.ItemID In (1,2,30,32,33)) ORDER BY Customer.LastName, Customer.FirstName; SaleID SaleDate EmployeeID CustomerID FieldLastNameFirstNameItemID TableCustomer SaleItem SortAscending CriteriaIn (1,2,30,32,33) Or CustomerID Phone FirstName LastName SaleCustomer SaleID ItemID Quantity SalePrice SaleItem

7 Copyright © 2010 Jerry Post with additions & narration by M. E. Kabay. All rights reserved. Using IN with a Sub-query  List all customers who bought items for cats. SELECT Customer.LastName, Customer.FirstName, SaleItem.ItemID FROM (Customer INNER JOIN Sale ON Customer.CustomerID = Sale.CustomerID) INNER JOIN SaleItem ON Sale.SaleID = SaleItem.SaleID WHERE (SaleItem.ItemID In (SELECT ItemID FROM Merchandise WHERE Category=‘Cat’) );

8 Copyright © 2010 Jerry Post with additions & narration by M. E. Kabay. All rights reserved. SubQuery (IN: Look up a Set) List all of the customers who bought something in March and who also bought something in May. (Two tests on the same data!) LastNameFirst AdkinsInga McCainSam GrimesEarl SELECT Customer.LastName, Customer.FirstName FROM Customer INNER JOIN Sale ON Customer.CustomerID = Sale.CustomerID WHERE ((Month([SaleDate])=3)) And Customer.CustomerID In (SELECT CustomerID FROM Sale WHERE (Month([SaleDate])=5) ); SaleID SaleDate EmployeeID CustomerID FieldLastNameFirstNameMonth(SaleDate)CustomerID TableCustomer SaleCustomer SortAscending Criteria3In (SELECT CustomerID FROM State WHERE (Month(SaleDate)=5) Or CustomerID Phone FirstName LastName SaleCustomer

9 Copyright © 2010 Jerry Post with additions & narration by M. E. Kabay. All rights reserved. SubQuery (ANY, ALL)  Any: value is compared to each item in the list. If it is True for any of the items, the statement is evaluated to True.  All: value is compared to each item in the list. If it is True for every item in the list, the statement is evaluated to True (much more restrictive than any). SELECT Animal.AnimalID, Name, SalePrice, ListPrice FROM Animal INNER JOIN SaleAnimal ON Animal.AnimalID = SaleAnimal.AnimalID WHERE ((SalePrice > Any (SELECT ListPrice FROM Animal INNER JOIN SaleAnimal ON Animal.AnimalID = SaleAnimal.AnimalID WHERE Category = ‘Cat’)) AND (Category=‘Cat’); Find animals that sold for more than any of the prices of cats (= find animals that sold for more than the greatest price of any cat)

10 Copyright © 2010 Jerry Post with additions & narration by M. E. Kabay. All rights reserved. SubQuery: NOT IN (Subtract)  Which animals have not been sold?  Start with list of all animals.  Subtract out list of those who were sold. AnimalIDNameCategory 12LeishaDog 19GeneDog 25VivianDog 34RhondaDog 88BrandyDog 181Fish SELECT Animal.AnimalID, Animal.Name, Animal.Category FROM Animal WHERE (Animal.AnimalID Not In (SELECT AnimalID From SaleAnimal)); FieldAnimalIDNameCategory TableAnimal Sort CriteriaNot In (SELECT AnimalID FROM SaleAnimal) Or AnimalID Name Category Breed Animal SELECT Animal.AnimalID, Name, SalePrice, ListPrice FROM Animal INNER JOIN SaleAnimal ON Animal.AnimalID = SaleAnimal.AnimalID ….

11 Copyright © 2010 Jerry Post with additions & narration by M. E. Kabay. All rights reserved. SubQuery: NOT IN (Data) IDNameCategoryBreed 2FishAngel 4GaryDogDalmation 5FishShark 6RosieCatOriental Shorthair 7EugeneCatBombay 8MirandaDogNorfolk Terrier 9FishGuppy 10SherriDogSiberian Huskie 11SusanDogDalmation 12LeishaDogRottweiler IDSaleIDSalePrice 235$ $ $ $ $ $ $ AnimalSaleAnimal  Which animals have not been sold?  Start with list of all animals.  Subtract out list of those who were sold. SELECT Animal.AnimalID, Animal.Name, Animal.Category FROM Animal WHERE (Animal.AnimalID Not In (SELECT AnimalID From SaleAnimal));

12 Copyright © 2010 Jerry Post with additions & narration by M. E. Kabay. All rights reserved. Left Outer Join  Which animals have not been sold?  LEFT JOIN includes all rows from left table (Animal)  But only those from right table (SaleAnimal) that match a row in Animal on AnimalID.  Thus rows in Animal without matching data in Sale Animal will have Null data for SaleAnimal.AnimalID and SaleAnimal.SalePrice SELECT Animal.AnimalID, Animal.Name, Animal.Category, SaleAnimal.SalePrice FROM Animal LEFT JOIN SaleAnimal ON Animal.AnimalID = SaleAnimal.AnimalID WHERE (SaleAnimal.SaleID Is Null); SaleID AnimalID SalePrice FieldAnimalIDSaleIDNameCategory TableAnimalSaleAnimalAnimal Sort CriteriaIs Null Or AnimalID Name Category Breed SaleAnimalAnimal AnimalIDNameCategory 12LeishaDog 19GeneDog 25VivianDog 34RhondaDog 88BrandyDog 181Fish FROM Animal INNER JOIN SaleAnimal ON Animal.AnimalID = SaleAnimal.AnimalID

13 Copyright © 2010 Jerry Post with additions & narration by M. E. Kabay. All rights reserved. Left Outer Join (Example) IDNameCategoryBreed 2FishAngel 4GaryDogDalmation 5FishShark 6RosieCatOriental Shorthair 7EugeneCatBombay 8MirandaDogNorfolk Terrier 9FishGuppy 10SherriDogSiberian Huskie 11SusanDogDalmation 12LeishaDogRottweiler IDSaleIDSalePrice 235$ $ NullNullNull 627$ $ $ NullNullNull 1018$ $ NullNullNull

14 Copyright © 2010 Jerry Post with additions & narration by M. E. Kabay. All rights reserved. SubQuery for Computation  Don’t know the average, so use a subquery to compute it.  Watch parentheses. SELECT SaleAnimal.AnimalID, Animal.Category, SaleAnimal.SalePrice FROM Animal INNER JOIN SaleAnimal ON Animal.AnimalID = SaleAnimal.AnimalID WHERE ((Animal.Category=‘Cat’) AND (SaleAnimal.SalePrice> (SELECT AVG(SalePrice) FROM Animal INNER JOIN SaleAnimal ON Animal.AnimalID = SaleAnimal.AnimalID WHERE (Animal.Category=‘Cat’) ) ) ); SaleID AnimalID SalePrice FieldAnimalIDNameCategorySalePrice TableAnimal SaleAnimal SortDescending Criteria3> (SELECT Avg(SalePrice) FROM Animal INNER JOIN SaleAnimal ON Animal.AnimalID = SaleAnimal.AnimalID WHERE Animal.Category = ‘Cat’) Or AnimalID Name Category Breed SaleAnimalAnimal

15 Copyright © 2010 Jerry Post with additions & narration by M. E. Kabay. All rights reserved. Correlated Subquery SELECT AnimalID, Name, Category, SalePrice FROM Animal INNER JOIN SaleAnimal ON Animal.AnimalID = SaleAnimal.AnimalID WHERE (SaleAnimal.SalePrice> (SELECT Avg(SaleAnimal.SalePrice) FROM Animal INNER JOIN SaleAnimal ON Animal.AnimalID = SaleAnimal.AnimalID WHERE (Animal.Category = Animal.Category) ) ) ORDER BY SaleAnimal.SalePrice DESC;  List the Animals that have sold for a price higher than the average for animals in that Category.  The subquery needs to compute the average for a given category.  Problem: Which category?  Answer: the category that matches the category from the main part of the query.  Problem: How do we refer to it? Both tables are called Animal. This query will not work yet.

16 Copyright © 2010 Jerry Post with additions & narration by M. E. Kabay. All rights reserved. Correlated SubQuery (Avoid) List the Animals that have sold for a price higher than the average for animals in that Category.  Match category in subquery with top level  Rename tables (As)  Correlated Subquery  Recompute subquery for every row in top level--slow!  Better to compute and save Subquery, then use in join. SELECT A1.AnimalID, A1.Name, A1.Category, SaleAnimal.SalePrice FROM Animal As A1 INNER JOIN SaleAnimal ON A1.AnimalID = SaleAnimal.AnimalID WHERE (SaleAnimal.SalePrice> (SELECT Avg(SaleAnimal.SalePrice) FROM Animal As A2 INNER JOIN SaleAnimal ON A2.AnimalID = SaleAnimal.AnimalID WHERE (A2.Category = A1.Category) ) ) ORDER BY SaleAnimal.SalePrice DESC; This is recomputed for every new category

17 Copyright © 2010 Jerry Post with additions & narration by M. E. Kabay. All rights reserved. Correlated Subquery Problem Fish$10.80 Dog$ Fish$19.80 Cat$ Cat$ Dog$ Fish$1.80 Dog$ Dog$ CategorySalePrice Animal + SaleAnimal Compute Avg: $37.78 Compute Avg: $ Compute Avg: $37.78 Compute Avg: $ Recompute average for every row in the main query!  Assume small query  100,000 rows  5 categories of 20,000 rows  100,000 * 20,000 = 1 billion rows to read!

18 Copyright © 2010 Jerry Post with additions & narration by M. E. Kabay. All rights reserved. More Efficient Solution: 2 queries  Compute the averages once and save query  JOIN saved query to main query  Two passes through table: 1 billion / 200,000 => 10,000 Fish$10.80 Dog$ Fish$19.80 Cat$ Cat$ Dog$ Fish$1.80 Dog$ Dog$ CategorySalePrice Animal + SaleAnimal Bird$ Cat$ Dog$ Fish$37.78 Mammal$80.72 Reptile$ Spider$ CategoryAvgOfSalePrice Saved Query JOIN Animal.Category = Query1.Category

19 Copyright © 2010 Jerry Post with additions & narration by M. E. Kabay. All rights reserved. UNION Operator  Offices in Los Angeles and New York.  Each has an Employee table (East and West).  Need to search data from both tables.  Columns in the two SELECT lines must match. SELECT EID, Name, Phone, Salary, ‘East’ AS Office FROM EmployeeEast UNION SELECT EID, Name, Phone, Salary, ‘West’ AS Office FROM EmployeeWest EIDNamePhoneSalaryOffice 352Jones335245,000East 876Inez873647,000East 372Stoiko763238,000East 890Smythe980362,000West 361Kim773673,000West

20 Copyright © 2010 Jerry Post with additions & narration by M. E. Kabay. All rights reserved. UNION, INTERSECT, EXCEPT T1T2 ABC SELECT EID, Name FROM EmployeeEast INTERSECT SELECT EID, Name FROM EmployeeWest List the name of any employee who has worked for both the East and West regions.

21 Copyright © 2010 Jerry Post with additions & narration by M. E. Kabay. All rights reserved. Multiple JOIN Columns  Sometimes need to JOIN tables on more than one column.  PetStore: Category and Breed. AnimalID Name Category Breed DateBorn Gender... Category Breed Animal SELECT * FROM Breed INNER JOIN Animal ON Breed.Category = Animal.Category AND Breed.Breed = Animal.Breed

22 Copyright © 2010 Jerry Post with additions & narration by M. E. Kabay. All rights reserved. Reflexive Join  Need to connect a table to itself.  Common example: Employee(EID, Name,..., Manager)  A manager is also an employee.  Use a second copy of the table and an alias. SELECT Employee.EID, Employee.Name, Employee.Manager, E2.Name FROM Employee INNER JOIN Employee AS E2 ON Employee.Manager = E2.EID EIDName...Manager 115Sanchez Miller Hawk Munoz886 Employee EIDNameManagerName 115Sanchez765Munoz 462Miller115Sanchez 523Hawk115Sanchez SQL Result

23 Copyright © 2010 Jerry Post with additions & narration by M. E. Kabay. All rights reserved. CASE Function  Used to change data to a different context.  Example: Define age categories for the animals.  Less than 3 months  Between 3 months and 9 months  Between 9 months and 1 year  Over 1 year Select AnimalID, CASE WHEN Date()-DateBorn < 90 Then “Baby” WHEN Date()-DateBorn >= 90 AND Date()-DateBorn < 270 Then “Young” WHEN Date()-DateBorn >= 270 AND Date()-DateBorn < 365 Then “Grown” ELSE “Experienced” END FROM Animal; Not available in Microsoft Access. It is in SQL Server and Oracle.

24 Copyright © 2010 Jerry Post with additions & narration by M. E. Kabay. All rights reserved. Inequality Join AR(TransactionID, CustomerID, Amount, DateDue)  AccountsReceivable (“AR”)  Categorize by Days Late  30, 90, 120+  Three queries?  Better: JOIN to new table for business rules LateCategory(Category, MinDays, MaxDays, Charge, …) Month30903% Quarter901205% Overdue % SELECT * FROM AR INNER JOIN LateCategory ON ((Date() - AR.DateDue) >= LateCategory.MinDays) AND ((Date() - AR.DateDue) < LateCategory.MaxDays)

25 Copyright © 2010 Jerry Post with additions & narration by M. E. Kabay. All rights reserved. SQL SELECT: REVIEW SELECT DISTINCT Table.Column {AS alias},... FROM Table/Query INNER JOIN Table/Query ON T1.ColA = T2.ColB WHERE (condition) GROUP BY Column HAVING (group condition) ORDER BY Table.Column { Union second select }

26 Copyright © 2010 Jerry Post with additions & narration by M. E. Kabay. All rights reserved. SQL Mnemonic Someone From Ireland Will Grow Horseradish and Onions SELECT FROM INNER JOIN WHERE GROUP BY HAVING ORDER BY SQL is picky about putting the commands in the proper sequence. If you have to memorize the sequence, this mnemonic may be helpful.

27 Copyright © 2010 Jerry Post with additions & narration by M. E. Kabay. All rights reserved. Homework  Study Chapter 5 pp carefully using SQ3R  Use the Review Questions 1-8 on pp to challenge yourselves.  Recommended exercises:  Sally’s Pets: previous classes completed all 25 of these exercises within two weeks and sweated blood to do so  You can tackle them without pressure. Do at least the first 10 to apply the theory  USE THE SQL INTERPRETER IN MS-ACCESS TO TEST ALL YOUR QUERIES  Solutions will be distributed after the Spring Break.

28 Copyright © 2010 Jerry Post with additions & narration by M. E. Kabay. All rights reserved. DISCUSSION