我正在尝试创建一个查询,以查看如果客户在期间1购买了产品1、2、3、4或5,则在期间2购买了哪些产品。
我正在使用列
处理DimProduct
表
CustomerID, PeriodID, ProductID
我已经尝试过一些混乱的IF
和WHERE
语句,但无法弄清楚。任何提示将不胜感激。谢谢!
答案 0 :(得分:0)
也许您需要这样的东西?
SELECT DISTINCT p2.ProductID
FROM DimProduct p2
WHERE p2.PeriodID = 2 and
EXISTS (SELECT TOP 1 1 FROM DimProduct as p1
WHERE p1.PeriodID = 1 and p1.ProductID in (1,2,3,4,5)
and p1.CustomerID = p2.CustomerID);
(如果脚本不起作用,请修复它。这只是一个主意)
答案 1 :(得分:0)
您可以在客户ID上将DimProduct加入自身,并将过滤条件添加到WHERE子句中。像这样的东西会满足您的需求。
SELECT DISTINCT p2.ProductID
FROM DimProduct p2
INNER JOIN DimProduct p1 ON p1.CustomerID = p2.CustomerID
WHERE p2.PeriodID = 2
AND p1.PeriodID = 1
AND p1.ProductID in (1,2,3,4,5)