gpt4 book ai didi

sql - 将详细数据与汇总数据相结合

转载 作者:行者123 更新时间:2023-12-04 18:34:53 25 4
gpt4 key购买 nike

我正在尝试为我的公司创建一份销售绩效分析报告,该报告采用两组销售目标。

  1. 现有客户的销售目标 - 用帐号标识,每个月为每个客户设置目标。每个客户都分配给一个销售代表,因此我们可以轻松计算该代表的现有销售目标总额。存储在自己的表中。

  2. 新业务的销售目标 - 这是每个销售代表在本财政年度必须赢得多少新业务的总计数字。存储在自己的表格中,其中列标识月份、年份、销售代表和捐赠金额。

我的 ETL 脚本为每个客户创建/更新每个月的新表行,显示客户的销售额、目标和与目标的差异。

我遇到的问题是如何处理新业务,因为这些数字是全年的一次性付款。如果我只是将它们联系起来,我最终得到的目标是新客户数量和总金额的倍数,而不是真实总数。

有没有人有过类似的经历或项目,这种聚合导致了他们的问题?

所以在我的表 Sales_Targets 中有列:

Company, Account Code, Target Type, Target, Cal Year, Cal Month, Month End

有数据:

BWA  P001          Large        40000   2013      7          2013-07-31

在我的 Other_Targets 表中,我有相同的信息减去帐户代码,因为数据已被概括,因为我们还不知道哪些帐户将是新的。此表中的目标类型设置为"new"。

丹尼

最佳答案

听起来您想要获取帐户,每个帐户都有实际值和目标值。然后,你想再得到两个数字:1. 该销售代表的“其他目标”2. 该销售代表获得的新业务总数

在 Sql Server 中,您可以在外部 select 子句中嵌套一个 Select 子查询。你可以嵌套另一个来计算新客户的数量。最后,您可以将这两者相除,以获得分配给该客户的销售代表的平均新客户目标。

它看起来像下面的查询,但是 see this Fiddle for more detail在假设的结构上。

select Account_Code, Cal_YYYYMM, Act_Sales, Sales_Rep
, coalesce((select sum(Target) from Sales_targets ST
where ST.Account_Code=A.Account_Code
and ST.Cal_YYYYMM=A.Cal_YYYYMM
and ST.Sales_Rep=A.Sales_Rep
),0) SPECIFIC_TARGET

, coalesce((select sum(Target) from Other_targets ST
where ST.Cal_YYYYMM=A.Cal_YYYYMM
and ST.Sales_Rep=A.Sales_Rep
),0) SALESMAN_OTHER_TARGET
, coalesce((select count(*) from Actual_Sales A2
where A2.Cal_YYYYMM=A.Cal_YYYYMM
and A2.Sales_Rep=A.Sales_Rep
and NOT EXISTS
(select 1
from Sales_Targets ST2
where ST2.Account_Code=A2.Account_Code
and ST2.Cal_YYYYMM=A2.Cal_YYYYMM
and ST2.Sales_Rep=A2.Sales_Rep
)
),0) SALESMAN_NEW_ACCOUNTS

, coalesce((select sum(Target) from Other_targets ST
where ST.Cal_YYYYMM=A.Cal_YYYYMM
and ST.Sales_Rep=A.Sales_Rep
),0)
/ coalesce((select count(*) from Actual_Sales A2
where A2.Cal_YYYYMM=A.Cal_YYYYMM
and A2.Sales_Rep=A.Sales_Rep
and NOT EXISTS
(select 1
from Sales_Targets ST2
where ST2.Account_Code=A2.Account_Code
and ST2.Cal_YYYYMM=A2.Cal_YYYYMM
and ST2.Sales_Rep=A2.Sales_Rep
)
),0) SALES_AVG

from Actual_Sales A

关于sql - 将详细数据与汇总数据相结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17658375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com