【问题标题】:Access Query Limit From Another Query从另一个查询访问查询限制
【发布时间】:2020-05-29 19:08:38
【问题描述】:

我正在尝试获取一个查询来填充高于另一个查询中指定的上限的声明。查询 1 中的声明和查询 2 中的上限通过部件号相关联。下面的图片将提供更好的视觉代表。

编辑:如果月份的索赔字段小于上限,那么我不希望它显示在查询中,但每个零件号的每个上限都不同。

【问题讨论】:

  • 也许加入 PartNo 上的数据并过滤 Claims>=UpperLimit。编辑问题以显示所需的输出。
  • 您想只显示当月索赔总额超过限制的零件吗?正如@June7 所说,请向我们展示您期望的输出,以便任何人都能在不猜测的情况下回答。
  • 我所描述的输出是@mazoula 在他的回答中所显示的。

标签: ms-access limit


【解决方案1】:

这里是sql:

SELECT Claims.PartNo, Month([Claims].[ProdYM]) AS [Month], Year([Claims].[ProdYM]) AS [Year], Sum(Claims.Claims) AS SumOfClaims
FROM UpperLimits INNER JOIN Claims ON UpperLimits.PartNO = Claims.PartNo
GROUP BY Claims.PartNo, Month([Claims].[ProdYM]), Year([Claims].[ProdYM])
HAVING (((Sum(Claims.Claims))>=Max([UpperLimits].[UpperLimit])));

结果:

这是一个总计查询,因此上限需要有一个汇总功能。 Max 是最容易找到的,但如果你找到它们,第一个和最后一个都会起作用。

【讨论】:

  • 当我在我的数据库上尝试相同的设置时,>=Max([UpperLimits].[Upperlimit]) 部分会引发无效的操作员错误。我更改了唯一的更改是表名,因为我的数据库中有不同的名称。
  • 两个建议。首先,您有足够的信息在独立数据库中复制我的答案。这是20分钟的疼痛,但这是练习。我怀疑max会在那里工作。我认为这是由于您的一个查询很复杂而导致的访问错误。如果是这种情况,您还可以通过应用以下修复来测试它:复制您的查询并将副本转换为生成表查询。然后在这些表上运行解决方案。
  • 只增加一个查询的较少诊断修复是分而治之。将我的解决方案分成两个更简单的查询,这样访问就不会出错。例如,删除 SumClaims 下的条件并将上限列 (UL) 添加到查询中(将您选择的第一个、最后一个、最大值放在 UL 的总行中)。所以我称新列 UL 和新查询 EC2。如果 EC3 仍然存在错误,您可以使 EC2 成为生成表查询。接下来根据 EC2 进行另一个名为 EC3 的查询并选择 EC2 的所有成员,然后添加现在更简单的条件(
  • 我将 qry 放入表中,它起作用了。非常感谢!
猜你喜欢
  • 2018-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多