GRADING SCALE TABLE [letter grade]
到TREE TABLE [health letter grade]
的每一个标准都有一对多的关系,等等。许多树可以有相同的等级。当我第一次测试一个查询时,它显示了每棵树的数字等级,但是这导致了每棵树的三重记录,这些都不是正确的值。
我想我将逐步处理这个过程,并使用开关函数运行一个查询,该函数为每个标准提供了每个树的正确的数字等级(Yay -这是基于一个类似的帖子,根据字母等级计算数字等级)。
我用:
HealthNum: Switch([Health]="A",1,[Health]="B",.75...,True,"Missing a grade")
但是,我很难运行一个查询来计算每个标准的权重和最终的权重。我尝试了每个树标准:HealthWtd: [HealthNum]*[Criteria_wt];
,其中的条件字段被设置为[Criteria]="Health"
当我设置[Criteria]="Health"
并将[Criteria]="Structure"
放在OR位置时,我为每棵树创建了两条记录。一个记录有一个正确的健康重量和一个不正确的结构重量,而另一个记录有一个不正确的健康重量和正确的结构重量。
一些注意事项:分级尺度和权重可能会不时变化,所以我宁愿使用一种关系,而不是开关函数。我的老板不喜欢过度筑巢。
我觉得这应该是一项简单的任务,而我的一生都无法解决这个问题。
发布于 2019-11-05 19:36:29
对于当前的表结构,查询表达式中的硬代码权重因子或使用DLookup()从表中提取正确的权重因子。也可以使用DLookup()进行缩放。
健康例子:
DLookup("Weight", "Weighted", "Criteria='Health'") * DLookup("Number", "Scale", "Letter='" & [Health] & "'")
树表未标准化。如果是的话,可以连接到比例表和权重表,以正确关联记录和计算权重。然后,交叉表查询可以生成水平输出。
可与其他表相连接的规范化表:
+---------+-----------+-------+
| TreeNum | Criteria | Grade |
+---------+-----------+-------+
| 10 | Health | A |
+---------+-----------+-------+
| 10 | Structure | B |
+---------+-----------+-------+
| 10 | Form | C |
+---------+-----------+-------+
| 12 | Health | B |
+---------+-----------+-------+
| 12 | Structure | B |
+---------+-----------+-------+
| 12 | Form | D |
+---------+-----------+-------+
https://stackoverflow.com/questions/58705252
复制相似问题