计算与一个客户相同且截止日期相同的两个销售机会

问题描述

我的问题摘要
我们公司提供两种软件产品(为简单起见,我们将其称为产品A和产品B)。过去,当客户要购买两种产品时,销售团队会为每种产品创建单独的机会对象。这两个机会对象都具有相同的客户ID(每个客户的唯一标识符)和相同的结束日期,但是具有不同的机会ID(每个机会对象的唯一标识符)。

目前,如果客户要购买两种产品,则销售人员将仅创建一个包含两种产品的机会对象。在比较过去几年和现在的统计数据时,这是一个挑战,因为过去的统计数据被夸大了,实际上有两个客户被关闭,而实际上是一个客户同时购买两种产品。

表格数据格式的示例Simple example of data

我要实现的目标

在我的SQL查询中或以后在Power BI中,我想将这些旧机会算作一个机会。换句话说,每当一个机会与表中的另一个机会具有相同的客户和相同的结束日期时,我要对此计数一次。

我尝试使用CASE语句将其标记为失败。我还尝试将一个查询嵌套在一个联接中,但是由于我的查询已经有4个JOINS和6个WHERE语句而遇到了问题。有任何想法吗?如果我需要提供更多示例或详细信息,请告诉我。谢谢!

解决方法

只需添加带有“主要”机会ID的列,然后如果您只需要“实际”机会,则可以在Power BI中对该列进行不同的计数。您可以为此使用OVER子句:

SELECT *,MIN(opportunityId) OVER (PARTITION  BY ClientId,closeDate) as MainOpportunityId
FROM opportunities