20.07.2013 Views

Beginning SQL

Beginning SQL

Beginning SQL

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Chapter 9<br />

SalesPersonId FirstName LastName Month Year Total<br />

2 Frasier Crane 10 2006 160.83<br />

2 Frasier Crane 10 2006 151.88<br />

2 Frasier Crane 11 2006 12.99<br />

2 Frasier Crane 12 2006 50.90<br />

1 Sandra Hugson 7 2006 12.98<br />

1 Sandra Hugson 8 2006 27.93<br />

1 Sandra Hugson 9 2006 21.93<br />

1 Sandra Hugson 10 2006 44.96<br />

1 Sandra Hugson 11 2006 37.92<br />

1 Sandra Hugson 12 2006 92.89<br />

1 Sandra Hugson 1 2007 31.97<br />

3 Daphne Moon 11 2006 141.85<br />

3 Daphne Moon 12 2006 221.74<br />

Hopefully this example has given you an idea of how to tackle slightly more complex queries. The following<br />

Try It Out puts your knowledge to the test, asking you to write a complex query that identifies<br />

how many repeat customers each salesperson has had.<br />

Try It Out Identifying Repeat Customers<br />

1. Although total sales is a good indicator of a salesperson’s success, the film club chairperson is<br />

interested to know how many people have ordered again from the same salesperson. First, the<br />

chairperson wants to know details of orders where the customer had ordered more than once<br />

from the same salesperson. The <strong>SQL</strong> to do this is as follows:<br />

276<br />

SELECT SalesPerson.SalesPersonId,<br />

SalesPerson.FirstName,<br />

SalesPerson.LastName,<br />

MemberDetails.MemberId,<br />

MemberDetails.FirstName,<br />

MemberDetails.LastName<br />

FROM (Orders INNER JOIN MemberDetails<br />

ON Orders.MemberId = MemberDetails.MemberId)<br />

INNER JOIN SalesPerson<br />

ON Orders.SalesPersonId = SalesPerson.SalesPersonId<br />

GROUP BY SalesPerson.SalesPersonId,<br />

SalesPerson.FirstName,<br />

SalesPerson.LastName,<br />

MemberDetails.MemberId,<br />

MemberDetails.FirstName,<br />

MemberDetails.LastName<br />

HAVING COUNT(Orders.MemberId) > 1<br />

ORDER BY SalesPerson.SalesPersonId;

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!