Sql查询给定周的实际值和预测值
表:UnitsSold 栏目:Sql查询给定周的实际值和预测值,sql,Sql,表:UnitsSold 栏目: 产品ID 数量 日期 预测分形–实际值可以是“A”,预测值可以是“F” 示例数据如下所示: UnitsSold ProductID Quantity Date ForecastOrActual Widget 100 1-June-2015 F Widget 120 1-June-2015 A Gizmo 90
- 产品ID
- 数量
- 日期
- 预测分形–实际值可以是“A”,预测值可以是“F”
UnitsSold
ProductID Quantity Date ForecastOrActual
Widget 100 1-June-2015 F
Widget 120 1-June-2015 A
Gizmo 90 1-June-2015 F
Gizmo 80 1-June-2015 A
Doohickey 200 1-June-2015 A
我正在寻找一个sql查询,它返回一个聚合指标,指示给定周内实际值与预测值的符合程度。还有任何假设
感谢您的支持。谢谢很难编写代码,因为这里有您的信息,但想法是:
WITH
cte_A AS
( SELECT qty,product, DATEPART( wk, DATE) AS WEEK
WHERE FORCAST='A'
GROUP BY product,DATEPART( wk, DATE))
, cte_F AS
( SELECT qty,product, DATEPART( wk, DATE) AS WEEK
WHERE FORCAST='F'
GROUP BY product,DATEPART( wk, DATE))
SELECT cte_A.product,cte_A.week,
CASE
WHEN cte_F.qty - cte_A.qty >0 THEN 'Not met forcast'
WHEN cte_F.qty - cte_A.qty <0 THEN 'Met forcast'
END AS result
FROM cte_A join cte_F
ON cte_A.product=cte_F.product
AND cte_A.week=cte_F.week
预期结果会是什么样子?请编辑您的问题,您需要哪种输出?发布您的预期结果,确定预测是否与实际发生的情况相符。只需发布您的预期结果。然后只有读者才能清楚地理解。该要求是针对这样提及的评估提出的。该角色要求您能够分析大量数据,并提出指标,说明公司在某些领域是在改善还是在恶化。一个很好的例子是确定我们的预测是否与实际发生的情况相符。编写一个SQL查询,返回一个聚合指标,指示给定周的实际值与预测值的符合程度。你做了什么假设?根据你的逻辑,这会给你一个总的数字。我想你也在问逻辑应该是什么,基于你的数据,你的逻辑是正确的。我能补充的是一种更“标准”的测量方法,比如0到100。我添加了一个新的性能逻辑,而不是0或1(无论是否满足预测),只是为了给你一个想法,如果你需要更多帮助,请告诉我。为了清晰起见,我发布了要求。。如果您能够细化表格:UnitsSold列:•ProductID•数量•日期•预测分形–可以是“A”表示实际,可以是“F”表示预测,我们将不胜感激。示例数据如下所示:UnitsSold ProductID Quantity Date Forecastorial Widget 100 1-June-2015 F Widget 120 1-June-2015 A Gizmo 90 1-June-2015 F Gizmo 80 1-June-2015 A Doohickey 200 1-June-2015 A编写一个SQL查询,该查询返回一个聚合度量,指示给定周的实际值与预测值的符合程度。你做了什么假设?@Eswar:不要将其他信息作为评论发布。编辑您的问题并将其添加为
WITH
cte_A AS
( SELECT qty,product, DATEPART( wk, DATE) AS WEEK
WHERE FORCAST='A'
GROUP BY product,DATEPART( wk, DATE))
, cte_F AS
( SELECT qty,product, DATEPART( wk, DATE) AS WEEK
WHERE FORCAST='F'
GROUP BY product,DATEPART( wk, DATE))
SELECT cte_A.product,cte_A.week,
CASE WHEN cte_F.qty = cte_A.qty THEN 0
ELSE 100.0*(cte_A.qty - cte_F.qty) / cte_F.qty As Performance
FROM cte_A join cte_F
ON cte_A.product=cte_F.product
AND cte_A.week=cte_F.week