大佬教程收集整理的这篇文章主要介绍了如何从 sql server 中的季度目标/目标获取每周目标,以便包含实际值和目标/目标的最终视图采用每周格式,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
Actuals table 实际值表跟踪销售人员实现目标的实际表现。数据采用“天”格式。 我使用 group by 创建了一个名为“vw_Actuals”的实际值的“每周视图”,如图所示。 Actuals View
Goals Table 跟踪每个销售人员每年的季度目标,数据采用“季度”格式。 目的是每周查看销售人员的“实际值”和“目标”。应该有周开始和周末。 我们无法划分目标,即我们无法得到否定的十进制答案。当我们尝试实现以季度格式给出的每周目标视图时,每周目标的数量。这里的目标是一个不可分割的实体,如机会或潜在客户。数据为 2021 年前 2 季度。
最终视图应类似于 Final view required - weekly。
我采用的方法如下: 我创建了一个周表“Weektable”,其中包含 weekstart、weekend、year 和季度。
使用左外连接加入周和目标表并创建视图 View vw_GoalsWeek
通过对 SALEspersonID、Year、Qtr 进行分区,创建了另一个分区视图 vw_partsGoalWeek。
添加了一个外部和内部分区号,以便我可以遍历从联接的目标和周表视图中获得的每个分区中的每一行,按 SALEspersonID、年、季度进行分区。我遍历每个分区,直到达到季度目标,并将每次迭代中的当前行添加到另一个表 Res1,直到达到该季度的目标,即年 SALEspersonID。 while 循环无限运行。
这种方法是不可行的,而且尽管有中断条件,while 循环仍在无限运行。 我真的尝试过,但无法找到一种方法将季度目标转换为每周目标以获得最终视图。每周目标不能是十进制答案。
下面是循环遍历目标周分区视图并将结果添加到空表 Res1
Declare @oPar INT = 1 --outer partition
print @oPar
Declare @oParEnd INT = (SELECT MAX(OuterPartition#) FROM vw_partsGoalWeek) --outer partition end
print @oParEnd
Declare @iPar INT = 1 --inner partition
print @iPar
Declare @iParEnd INT = (SELECT MAX(InnerPartition#) FROM vw_partsGoalWeek WHERE OuterPartition# = @oPar)
print @iParEnd --inner partition end
Declare @@R_64_10586@lOppor INT = (SELECT SUM(Opportunity) FROM Res1 WHERE OuterPartition# = @oPar) --Sum of opportunitIEs(new column ) added to Res1 table to see if goal is reached
print @@R_64_10586@lOppor
Declare @qtrlyGoal INT = (SELECT QtrlyGoals FROM vw_partsGoalWeek WHERE OuterPartition# = @oPar AND InnerPartition# = @iPar) --Quaterly Goal
print @qtrlyGoal
WHILE(@oPar <= @oParEnd)
BEGIN
PRINT 'StarTing outer partition no ' + CAST(@oPar AS VARCHAR(30))
WHILE(@iPar <= @iParEnd)
BEGIN
PRINT 'StarTing inner partition no ' + CAST(@iPar AS VARCHAR(30))
PRINT '@R_64_10586@l oppor for outer partition before new insert ' + CAST(@oPar AS VARCHAR(30)) + ' and inner partition ' + CAST(@iPar AS VARCHAR(30)) + ' is ' + CAST(@@R_64_10586@lOppor AS VARCHAR(30))
INSERT INTO Res1(SALEspersonID,SALEspersonname,Qtr,Year,QtrlyGoals,YrQtr,WeekStart,WeekEnd,ID_Yr_Qtr_Sum,OuterPartition#,InnerPartition#,Opportunity )(
SELECT *,1 AS Opportunity FROM vw_partsGoalWeek WHERE OuterPartition# = @oPar AND InnerPartition# = @iPar
)
PRINT '@R_64_10586@l oppor for outer partition after new insert ' + CAST(@oPar AS VARCHAR(30)) + ' and inner partition ' + CAST(@iPar AS VARCHAR(30)) + ' is ' + CAST(@@R_64_10586@lOppor AS VARCHAR(30))
IF(@@R_64_10586@lOppor = @qtrlyGoal)
BREAK;
ELSE
BEGIN
IF (@iPar = @iParEnd)
SET @iPar = 1;
END;
SET @iPar = @iPar + 1
END
SET @oPar = @oPar + 1
END
有人可以帮我解决这个问题吗。
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
以上是大佬教程为你收集整理的如何从 sql server 中的季度目标/目标获取每周目标,以便包含实际值和目标/目标的最终视图采用每周格式全部内容,希望文章能够帮你解决如何从 sql server 中的季度目标/目标获取每周目标,以便包含实际值和目标/目标的最终视图采用每周格式所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。