Я использую свой запрос, чтобы отозвать случаи, когда один покупатель покупает вещи в течение нескольких дней.Я заинтересован в том, чтобы вытягивать только те строки, где покупатель покупает один и тот же товар в разные дни.
Мой запрос выглядит следующим образом:
FROM (
SELECT *,ROW_NUMBER() OVER(Partition by ordernumber,onlydate ORDER BY ordernumber ) as ROW_Number2
FROM
(
SELECT
Firstname
,lastname
,customerid
,orderdate
,ordernumber
,producttype
,
convert(date, orderdate) as onlydate,
convert(time (0), orderdate)as onlytime
FROM sales a (nolock)
JOIN product p(nolock)
ON a.customerid = p.customerid
WHERE orderdate BETWEEN '07/01/2018' AND '09/01/2018'
)
)as A
) AS B
WHERE B.ROW_Number2=1
, и он возвращает случаи, когда клиент покупает вещи в разные дни, но иногда он показывает, что покупатель покупает разные товары.Я думаю, что мне нужно использовать функцию LEAD с параметром для типа продукта, но я не уверен, как вставить его в этот запрос.
Любая и вся помощь будет оценена!
Пример данных:
firstname lastname customerid b.department orderdate producttype
--------- --------- --------- --------- --------- ---------
alice johnson 1 athletic 12/7/17 shoes
alice johnson 1 athletic 12/8/18 headband
john parker 2 toiletries 12/9/18 cleaning
john parker 2 toiletries 12/10/18 personal
john parker 2 toiletries 12/10/18 cleaning
Желаемые данные:
firstname lastname customerid b.department orderdate producttype
--------- --------- --------- --------- --------- ---------
john parker 2 toiletries 12/9/18 cleaning
john parker 2 toiletries 12/10/18 cleaning
Хотел бы, чтобы она отображалась толькослучаи, когда Джон покупал уборку