Beginning SQL

Beginning SQL Beginning SQL

marjan.fesb.hr
from marjan.fesb.hr More from this publisher
20.07.2013 Views

FirstName and LastName. You need to add SalesPersonId, which is unique to each salesperson, to the GROUP BY clause, as well as display it in the final results: SELECT SalesPerson.SalesPersonId, FirstName, LastName, MONTH(OrderDate)AS Month, YEAR(OrderDate) AS Year, SUM(DVDPrice) AS Total FROM ((Orders INNER JOIN SalesPerson ON Orders.SalesPersonId = SalesPerson.SalesPersonId) INNER JOIN OrderItems ON OrderItems.OrderId = Orders.OrderId) INNER JOIN Films ON Films.FilmId = OrderItems.FilmId GROUP BY SalesPerson.SalesPersonId, FirstName,LastName,MONTH(OrderDate), YEAR(OrderDate); Executing the query provides the following results: SalesPersonId FirstName LastName Month Year Total 1 Sandra Hugson 1 2007 31.97 1 Sandra Hugson 7 2006 12.98 1 Sandra Hugson 8 2006 27.93 1 Sandra Hugson 9 2006 21.93 1 Sandra Hugson 10 2006 44.96 1 Sandra Hugson 11 2006 37.92 1 Sandra Hugson 12 2006 92.89 2 Frasier Crane 10 2006 151.88 2 Frasier Crane 11 2006 12.99 2 Frasier Crane 12 2006 50.90 3 Daphne Moon 1 2007 80.94 3 Daphne Moon 11 2006 141.85 3 Daphne Moon 12 2006 221.74 The second slight issue is the order of the results. They would be easier to read if they were ordered by salesperson and then by month and year, as shown in the ORDER BY clause of the following statement: SELECT SalesPerson.SalesPersonId, FirstName, LastName, MONTH(OrderDate)AS Month, YEAR(OrderDate) AS Year, SUM(DVDPrice) AS Total FROM ((Orders INNER JOIN SalesPerson ON Orders.SalesPersonId = SalesPerson.SalesPersonId) INNER JOIN OrderItems ON OrderItems.OrderId = Orders.OrderId) INNER JOIN Films ON Films.FilmId = OrderItems.FilmId GROUP BY SalesPerson.SalesPersonId, FirstName,LastName,MONTH(OrderDate), YEAR(OrderDate) ORDER BY LastName, FirstName, YEAR(OrderDate), MONTH(OrderDate); The final results are as follows: Advanced Queries 275

FirstName and LastName. You need to add SalesPersonId, which is unique to each salesperson, to the<br />

GROUP BY clause, as well as display it in the final results:<br />

SELECT SalesPerson.SalesPersonId, FirstName, LastName, MONTH(OrderDate)AS Month,<br />

YEAR(OrderDate) AS Year, SUM(DVDPrice) AS Total<br />

FROM ((Orders INNER JOIN SalesPerson ON Orders.SalesPersonId =<br />

SalesPerson.SalesPersonId)<br />

INNER JOIN OrderItems ON OrderItems.OrderId = Orders.OrderId)<br />

INNER JOIN Films ON Films.FilmId = OrderItems.FilmId<br />

GROUP BY SalesPerson.SalesPersonId, FirstName,LastName,MONTH(OrderDate),<br />

YEAR(OrderDate);<br />

Executing the query provides the following results:<br />

SalesPersonId FirstName LastName Month Year Total<br />

1 Sandra Hugson 1 2007 31.97<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 />

2 Frasier Crane 10 2006 151.88<br />

2 Frasier Crane 11 2006 12.99<br />

2 Frasier Crane 12 2006 50.90<br />

3 Daphne Moon 1 2007 80.94<br />

3 Daphne Moon 11 2006 141.85<br />

3 Daphne Moon 12 2006 221.74<br />

The second slight issue is the order of the results. They would be easier to read if they were ordered by<br />

salesperson and then by month and year, as shown in the ORDER BY clause of the following statement:<br />

SELECT SalesPerson.SalesPersonId, FirstName, LastName, MONTH(OrderDate)AS Month,<br />

YEAR(OrderDate) AS Year, SUM(DVDPrice) AS Total<br />

FROM ((Orders INNER JOIN SalesPerson ON Orders.SalesPersonId =<br />

SalesPerson.SalesPersonId)<br />

INNER JOIN OrderItems ON OrderItems.OrderId = Orders.OrderId)<br />

INNER JOIN Films ON Films.FilmId = OrderItems.FilmId<br />

GROUP BY SalesPerson.SalesPersonId, FirstName,LastName,MONTH(OrderDate),<br />

YEAR(OrderDate)<br />

ORDER BY LastName, FirstName, YEAR(OrderDate), MONTH(OrderDate);<br />

The final results are as follows:<br />

Advanced Queries<br />

275

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

Saved successfully!

Ooh no, something went wrong!