Получить клиента, который купил более 13 различных продуктов, которые никогда не покупали один и тот же продукт - PullRequest
0 голосов
/ 29 июня 2018

Я попробовал это. Но я чувствую, что это дает людям, которые заказали тот же продукт

SELECT DISTINCT Count(od.orderqty) OrderQty, 
                c.customerid, 
                od.productid 
FROM   sales.customer c 
       INNER JOIN sales.salesorderheader oh 
               ON c.customerid = oh.customerid 
       INNER JOIN sales.salesorderdetail od 
               ON oh.salesorderid = od.salesorderid 
GROUP  BY od.productid, 
          c.customerid 
HAVING Count(od.productid) > 10 
ORDER  BY c.customerid 

1 Ответ

0 голосов
/ 29 июня 2018

Не уверен, какой тип SQL вы используете, но попробуйте это:

select  t.CustomerID
from    (
select  c.CustomerID
        , count(distinct od.ProductID) as DistinctCount
        , count(od.ProductID) as Count
from    Sales.Customer c
join    Sales.SalesOrderHeader oh
        on c.customerid = oh.customerid
join    Sales.SalesOrderDetail od
        on oh.SalesOrderID = od.SalesOrderID
group 
by      c.CustomerID 
) as t
where   t.DistinctCount = t.Count
and     t.DistinctCount > 13
order 
by      t.CustomerID
...