Извините за заголовок, извините за невежество в разработке прямого к точечному названию.
Этот код / сценарий просто для понимания того, откуда я берусь (я не буду публиковать реальный код), я не прошу ни оценивать этот код, ни отлаживать, могут быть ошибки индекса и т. Д. Это было написано здесь без тестирования.
Здесь также изготовлены таблицы, так что если они выглядят глупо и не имеют смысла, вы правы. Но, пожалуйста, постарайтесь помнить, в чем заключается проблема, поскольку она универсальна и может быть применена к любой схеме базы данных в реальном мире.
Задача
Мне нужно посчитать, сколько раз персонал продал конкретному клиенту, а также вернуть последний проданный товар от этого клиента . Смелые слова - проблемный бит. Я не знаю, как создать этот бит запроса, не повредив счетную часть (Сколько клиентов продал продавец), я пытался использовать Order By, но не вернул то, что мне нужно.
SELECT StaffName, Count(SoldToCustomerId)
AS TimesSoldToCustomer, CustomerName, Item FROM CustomerHistory
INNER JOIN Seller ON SoldToCustomerId = CustomerId
GROUP BY SoldToCustomerId;
База данных
CustomerHistory
CustomerId CustomerName PurchasedDate Item
1 John 01/02/2018 Iphone
2 Tom 02/02/2018 Galaxy
3 Peter 03/02/2018 Ps4
1 John 05/02/2018 Xbox One
1 John 06/02/2018 Ps4
1 John 03/02/2018 PC
1 John 07/01/2017 graphic card
Seller
StaffId StaffName SoldToCustomerId
1 James 1
2 Tim 2
..
Ideal result from sql query
StaffName TimesSoldToCustomer CustomerName lastSoldItem
James 5 John Ps4 -- Last Item Sold
Tim 1 Tom Galaxy -- Last Item Sold