听起来您想获取帐户,每个帐户都有实际值和目标值。然后,您想再获得两个数字: 1. 该销售代表的“其他目标” 2. 该销售代表获得的新业务总数
在 Sql Server 中,您可以在外部 select 子句中嵌套一个 Select 子查询。你可以嵌套另一个来计算新客户的数量。最后,您可以将这两者分开,以获得分配给该帐户的销售代表的平均新客户目标。
它看起来类似于下面的查询,但有关假定结构的更多详细信息,请参阅此 Fiddle 。
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