【发布时间】:2018-12-20 22:10:50
【问题描述】:
我正在使用我的查询来拉回一个客户在多天购买东西的实例。我有兴趣只撤回客户在不同日期购买相同商品的行。
我的查询如下所示:
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
它会拉回客户在不同日期购买东西的实例,但有时它会显示客户正在购买不同的物品。我想我需要在 producttype 上使用带有参数的 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
希望它只显示约翰购买清洁的实例
【问题讨论】:
-
你最好展示一些示例数据和预期结果
-
已添加 - 感谢您的意见!
标签: sql sql-server tsql lead