【问题标题】:Access query to pull records that have a value change more than a certain percentage访问查询拉取值变化超过一定百分比的记录
【发布时间】:2020-03-23 08:29:00
【问题描述】:

如果两个表的市场价值不同,我目前有一个表(MV 变化),它从两个表(当前和上一个)记录中提取。此外,该查询还有一列列出了两个市场值之间的差异,使用的表达式是Expr1: [Current].[MARKET VALUE]-[Previous].[MARKET VALUE]。我正在寻找两件事;

  1. 是否可以创建查询或表达式来仅提取变化超过 15% 的记录? (例如,如果 Current MV = 100 and Previous = 55 OR Current MV = 25 and Previous = 90 那么查询将列出记录。)

  2. 当表达式的结果为负时,有没有办法从表结果中删除 ()? (例如,当前 MV = 30 和上一个 MV = 80,结果在表格中显示为 (50) 而不是 50)

以下是一些示例数据:

当前表

ID Market Value 
1    $100   
2    $100
3    $100
4    $100    
5    $100
6    $50

上一张表

ID Market Value 
1    $100   
2    $90
3    $50
4    $110  
5    $150

我想要的查询只提取 ID 3 和 5,因为这两个市场价值的变化都超过了 15%。 ID 6 不会在其中,因为上表中没有市场价值

任何帮助将不胜感激。

我当前的SQL查询如下;

SELECT [mv change].[id],
       [mv change].[new mv],
       [mv change].[old mv],
       [mv change].[change in mv],
FROM   [mv change]
WHERE  (( [mv change].[new mv] - [mv change].[old mv] >= 1.15 ))
        OR (( [mv change].[new mv] - [mv change].[old mv] >=- 1.15 )); 

【问题讨论】:

  • 样本数据和期望的结果真的很有帮助。
  • @Gordon Linoff 添加了一些简单的数据,希望对您有所帮助
  • 请使用发布的示例数据发布尝试的查询和所需的结果。文字解释并不总是很清楚。

标签: sql ms-access percentage


【解决方案1】:

要求未指定 WHAT 的百分比?差异/当前或差异/上一个???

使用ABS([Current].[MARKET VALUE] - [Previous].[MARKET VALUE]) 获取正值。

如果(Diff / Previous) > 1.15(Diff / Previous) < 0.85 则举报。

【讨论】:

  • 抱歉造成混淆,这是我一直在使用的 SQL 语言来尝试获得我的结果。我的目标是获得任何 15% 的积极或消极变化的 MV 变化。
  • SELECT [MV CHANGE].[ID], [MV CHANGE].[NEW MV], [MV CHANGE].[OLD MV], [MV CHANGE].[CHANGE IN MV], FROM [MV CHANGE] WHERE (([MV CHANGE].[NEW MV]-[MV CHANGE].[OLD MV]>=1.15)) 或 (([MV CHANGE].[NEW MV]-[MV CHANGE].[旧MV]>=-1.15));
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-12
  • 1970-01-01
  • 1970-01-01
  • 2021-11-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多