Beginning SQL
Beginning SQL Beginning SQL
Chapter 9 280 SalesPersonId MemberId 1 4 1 6 1 7 1 9 2 4 2 7 2 10 Although you now have the answer to the question, it would be a whole lot nicer to see the names rather than SalesPersonId and MemberId. To display the names, create a join between the SalesPerson and MemberDetails tables: SELECT SalesPerson.SalesPersonId, SalesPerson.FirstName, SalesPerson.LastName, MemberDetails.MemberId, MemberDetails.FirstName, MemberDetails.LastName FROM (Orders INNER JOIN MemberDetails ON Orders.MemberId = MemberDetails.MemberId) INNER JOIN SalesPerson ON Orders.SalesPersonId = SalesPerson.SalesPersonId GROUP BY SalesPerson.SalesPersonId, SalesPerson.FirstName, SalesPerson.LastName, MemberDetails.MemberId, MemberDetails.FirstName, MemberDetails.LastName HAVING COUNT(Orders.MemberId) > 1 ORDER BY SalesPerson.SalesPersonId Although you added a lot of new code, it’s just a result of joining two new tables, MemberDetails and SalesPerson. The various names and IDs of the salespeople and members have been added to the SELECT column list, as shown in the following: SELECT SalesPerson.SalesPersonId, SalesPerson.FirstName, SalesPerson.LastName, MemberDetails.MemberId, MemberDetails.FirstName, MemberDetails.LastName The column names appear in more than one of the tables, so each has to be prefixed by the name of the table the column comes from. The GROUP BY clause requires that columns in the SELECT column list also appear in the GROUP BY list, so you added them there also:
- Page 550: clause specifying that the film’s
- Page 554: 4. Next, quickly double-check a few
- Page 558: Now that you’ve confirmed that th
- Page 562: Summary Queries within Queries This
- Page 568: Chapter 9 264 Figure 9-1 The SQL ne
- Page 572: Chapter 9 266 INSERT INTO OrderItem
- Page 576: Chapter 9 268 VALUES (5,7, 2,’200
- Page 580: Chapter 9 Now that you’ve added t
- Page 584: Chapter 9 272 FirstName LastName Mo
- Page 588: Chapter 9 274 DVDPrice column is in
- Page 592: Chapter 9 SalesPersonId FirstName L
- Page 596: Chapter 9 278 SalesPersonId MemberI
- Page 602: GROUP BY SalesPerson.SalesPersonId,
- Page 606: Executing the preceding SQL creates
- Page 610: ❑ Use IN with your subqueries. Wh
- Page 614: 10 Views Views, as the name implies
- Page 618: Try It Out Building a View 1. The p
- Page 622: FROM dbo.MemberDetails INNER JOIN d
- Page 626: For example, you might want a list
- Page 630: However, if you take the case of Me
- Page 634: However, someone writes a query tha
- Page 638: Summary As you learned, views are l
- Page 644: Chapter 11 The information that fol
- Page 648: Chapter 11 This SQL adds formats (d
Chapter 9<br />
280<br />
SalesPersonId MemberId<br />
1 4<br />
1 6<br />
1 7<br />
1 9<br />
2 4<br />
2 7<br />
2 10<br />
Although you now have the answer to the question, it would be a whole lot nicer to see the names rather<br />
than SalesPersonId and MemberId. To display the names, create a join between the SalesPerson and<br />
MemberDetails tables:<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<br />
Although you added a lot of new code, it’s just a result of joining two new tables, MemberDetails and<br />
SalesPerson. The various names and IDs of the salespeople and members have been added to the<br />
SELECT column list, as shown in the following:<br />
SELECT SalesPerson.SalesPersonId,<br />
SalesPerson.FirstName,<br />
SalesPerson.LastName,<br />
MemberDetails.MemberId,<br />
MemberDetails.FirstName,<br />
MemberDetails.LastName<br />
The column names appear in more than one of the tables, so each has to be prefixed by the name of the<br />
table the column comes from. The GROUP BY clause requires that columns in the SELECT column list also<br />
appear in the GROUP BY list, so you added them there also: