SQL - Попытка получить клиентов, которые заказали продукт впервые в течение месяца и - PullRequest
0 голосов
/ 08 октября 2009

Мне нужно получить список клиентов, которые заказали определенный товар впервые за определенный месяц, а затем подсчитать, сколько из этих товаров они заказали с тех пор. Я начал работать над этим, но чувствую, что иду в неправильном направлении - SQL не является моей сильной стороной.

Таким образом, данные результатов выборки будут выглядеть примерно так:

              Num of Customers   |  Num of Orders | Total Revenue | Total Gross Profit 
--------------------------------------------------------------------------
January       100                   135              $1350           $725

Вот мои таблицы (исключенные столбцы не нужны):

Клиент

CustomerID

CustomerOrder

CustomerOrderID
CustomerID
OrderID
OrderDate

CustomerOrderItem

CustomerOrderItemID
OrderID
SKU
Цена
Стоимость

Пример SKU будет выглядеть как «ESK-1MVV», а прибыль будет просто Цена - Стоимость

1 Ответ

1 голос
/ 08 октября 2009
select count(c.CustomerID), sum(Price), sum((Price-Cost)) 
from  
(
  select CustomerID, min(OrderDate) as firstDate
  From CustomerOrder a
  inner join CustomerOrderItem b
  on a.OrderID = b.OrderID
  where SKU='ESK-1MVV'
  group by CustomerID
) as firstSale
inner join
CustomerOrder c
on firstSale.CustomerID = c.CustomerID
inner join CustomerOrderItem d
on c.OrderID = d.OrderID
where month(firstSale.firstDate) = 1
and year(firstSale.firstDate) = 2009
and d.SKU='ESK-1MVV'

Ограничьте клиентов, которые купили товар, и получите дату, когда они впервые купили его. Во внешнем, где, ограничить тем, кто купил его первым в желаемом месяце. Добавьте «and OrderDate> firstDate», чтобы исключить первую продажу, если это то, что вы хотели

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...