我有一个包含客户交易数据的表 (TransactionData) 和一个包含通讯订阅者客户的表 (Subscribers)。这就是我需要做的。
从 TransactionData 表中选择所有也在订阅者表中并且只在线购买产品的订阅者 (StoreID = 50001)。
两个表的唯一键是客户电子邮件地址。
这是基本的表结构。
TransactionData
Email StoreID OrderID
customer1@mail.com 50001 101
customer1@mail.com 50001 102
customer2@mail.com 50001 201
customer2@mail.com 51111 202
customer3@mail.com 50001 301
customer3@mail.com 50001 302
Subscribers
Email
customer1@mail.com
customer2@mail.com
Desired result
Email StoreID
customer1@mail.com 50001
到目前为止,这是我的查询:
SELECT b.Email, b.StoreID
FROM TransactionData AS a
INNER JOIN Subscribers AS b
ON a.Email = b.Email
WHERE a.BoutiqueId = 50001
我不知道如何排除既在网上又在实体店购买过的客户。你能帮我解决这个问题吗?
最佳答案
SELECT t.Email , t.StoreID
FROM TransactionData t
WHERE EXISTS (SELECT 1
FROM Subscribers
WHERE t.Email = Email)
AND NOT EXISTS (SELECT 1
FROM TransactionData
WHERE t.Email = Email
AND StoreID <> 50001)
GROUP BY t.Email , t.StoreID
关于SQL Server – 获取仅在线购买的客户的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32398389/