Sql server T-SQL在两个表之间查找缺少的项
我有一张销售表和一张产品表。样本:Sql server T-SQL在两个表之间查找缺少的项,sql-server,tsql,Sql Server,Tsql,我有一张销售表和一张产品表。样本: Company Product Product Company1 A A Company1 B B Company2 B C D 公司1购买了产品A和B。公司2购买了产品B 我需要一个T-SQL查询,该查询将按公司告诉我他们没有购买哪些产品。最终用户希望联系
Company Product Product
Company1 A A
Company1 B B
Company2 B C
D
公司1购买了产品A和B。公司2购买了产品B
我需要一个T-SQL查询,该查询将按公司告诉我他们没有购买哪些产品。最终用户希望联系这些公司,看看他们是否有兴趣购买“缺失”的产品,因此我们需要知道与每个客户讨论哪些产品:
我想为所有公司生成一份报告,因此仅运行查询并提供一个公司ID是不够的。我们需要按公司对结果进行分组:
Company1: C, D (I don't need comma-delimited list; I'm just listing the values as an example)
Company2: A, C, D
以下简单的方法可以让您了解有问题的产品:
select distinct s.company, p.product
from sales s
outer apply (
select product
from products
where product not in (select product from sales s2 where s2.company=s.company)
)p
谢谢,这工作做得很好。