SQL 查询与上一日期相比的百分比变化
SQL query for percentage change compared to previous date
我有一个 table 内部访问权限,其中包含部门在不同参考日期的绩效。所有数据都在一个table“tblmain”中。 table 包含以下字段:
- 参考日期(名为“ref_date”,格式为dd.mm.yyyy)
- 部门标识符(称为“dep_id”)
- 性能值(称为“val”)
每个参考日期由大约100个部门组成,每周我都会导入一个新的参考日期。
我现在的目标是构建一个查询,计算参考日期与上一个参考日期相比的百分比变化。此外,它应该只显示变化大于 5% 的部门。
我目前卡住了。我创建了一个查询,该查询为我提供了上一个参考日期的 val,但仅针对一个特定部门。我不知道如何继续。此查询如下所示:
SELECT TOP 1 tblmain.val
FROM (SELECT TOP 2 tblmain.val, tblmain.ref_date FROM tblmain WHERE dep_id=1 ORDER BY tblmain.ref_date DESC)
ORDER BY tblmain.ref_date;
如果有任何反馈,我将不胜感激。完成此查询后,我打算以可以选择参考日期和阈值的形式使用此查询。
非常感谢!
为每条记录提取先前值的查询:
SELECT tblMain.ID, tblMain.ref_date, tblMain.dep_id, tblMain.val,
(SELECT TOP 1 val FROM tblMain AS Dupe
WHERE Dupe.dep_id=tblMain.dep_id AND Dupe.ref_Date < tblMain.ref_date
ORDER BY dupe.ref_date) AS PriorVal
FROM tblMain;
现在使用该查询来计算百分比:
SELECT Query1.*, Abs(([PriorVal]-[val])/[PriorVal]*100) AS P
FROM Query1
WHERE (((Abs(([PriorVal]-[val])/[PriorVal]*100))>5));
我有一个 table 内部访问权限,其中包含部门在不同参考日期的绩效。所有数据都在一个table“tblmain”中。 table 包含以下字段:
- 参考日期(名为“ref_date”,格式为dd.mm.yyyy)
- 部门标识符(称为“dep_id”)
- 性能值(称为“val”)
每个参考日期由大约100个部门组成,每周我都会导入一个新的参考日期。
我现在的目标是构建一个查询,计算参考日期与上一个参考日期相比的百分比变化。此外,它应该只显示变化大于 5% 的部门。
我目前卡住了。我创建了一个查询,该查询为我提供了上一个参考日期的 val,但仅针对一个特定部门。我不知道如何继续。此查询如下所示:
SELECT TOP 1 tblmain.val
FROM (SELECT TOP 2 tblmain.val, tblmain.ref_date FROM tblmain WHERE dep_id=1 ORDER BY tblmain.ref_date DESC)
ORDER BY tblmain.ref_date;
如果有任何反馈,我将不胜感激。完成此查询后,我打算以可以选择参考日期和阈值的形式使用此查询。
非常感谢!
为每条记录提取先前值的查询:
SELECT tblMain.ID, tblMain.ref_date, tblMain.dep_id, tblMain.val,
(SELECT TOP 1 val FROM tblMain AS Dupe
WHERE Dupe.dep_id=tblMain.dep_id AND Dupe.ref_Date < tblMain.ref_date
ORDER BY dupe.ref_date) AS PriorVal
FROM tblMain;
现在使用该查询来计算百分比:
SELECT Query1.*, Abs(([PriorVal]-[val])/[PriorVal]*100) AS P
FROM Query1
WHERE (((Abs(([PriorVal]-[val])/[PriorVal]*100))>5));