【问题标题】:how to show result based on percentage value in query如何根据查询中的百分比值显示结果
【发布时间】:2020-07-09 02:43:49
【问题描述】:

我有一个查询,我根据表单和子表单上的控件中的值计算百分比值

=[Total]/[Forms]![FrmDSTResultsCompare]![mainTotal]

如果我在查询条件中输入 >= 50,它会返回一个参数值输入

我想要在查询中做的是将结果显示到 50%。请帮忙。

SELECT Val([SumTest1])+Val([SumTest2]) AS Total, QryDSTResultsGroupbyID2.PatientID, QryDSTResultsGroupbyID2.Test1, QryDSTResultsGroupbyID2.Test2, [Total]/[Forms]![FrmDSTResultsCompare]![mainTotal] AS Expr1
FROM QryDSTResultsGroupbyID2
WHERE ((([Total]/[Forms]![FrmDSTResultsCompare]![mainTotal])>=50))
ORDER BY Val([SumTest1])+Val([SumTest2]) DESC;

【问题讨论】:

  • 请发布示例数据以及到目前为止您尝试了什么。
  • 我尝试将 >=50 放入查询字段的条件中,但它不起作用。
  • 按照已要求,编辑问题以提供示例数据和查询 SQL。您显示的内容看起来像是文本框中的表达式。
  • 6 月 7 日我添加了查询 SQL。
  • 是的,所以我怎样才能使查询显示结果最多只有 50% 匹配。如果我删除标准中的 >=50 值,它会显示所有百分比结果

标签: vba ms-access


【解决方案1】:

您不能引用“总计”,因为它是动态计算的。在查询中使用计算,而不是值的名称:

SELECT 
    Val([SumTest1])+Val([SumTest2]) AS Total, 
    QryDSTResultsGroupbyID2.PatientID, 
    QryDSTResultsGroupbyID2.Test1, 
    QryDSTResultsGroupbyID2.Test2,
    [Total]/[Forms]![FrmDSTResultsCompare]![mainTotal] AS Expr1
FROM QryDSTResultsGroupbyID2
WHERE (((Val([SumTest1])+Val([SumTest2]) )/[Forms]![FrmDSTResultsCompare]![mainTotal])>=50)
ORDER BY Val([SumTest1])+Val([SumTest2]) DESC;

【讨论】:

  • 不显示参数输入框但不显示任何结果。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-21
  • 1970-01-01
  • 2020-08-28
  • 1970-01-01
相关资源
最近更新 更多