我在Ms-Access中有一个表,它有两列,VAR1和VAR2。
这些列的变量基于c1-c2-c3-c4-c5。
第二个表是矩阵。我需要使用VAR1和VAR2之间的相关性来从矩阵中得到一个数字。
例如:
---- ----表
VAR1 VAR2
C2 C2
C1 C1
C2 C2
C2 C3
C1 C1
C2 C2
---------- MATRIX -----------------
------- VAR2 -------
VAR1 C1 C2 C3 C4 C5
C1 10 16 24 32 40
C2 16 20 30 40 56
C3 20 30 40 60 80
C4 30 40 60 80 160
C5 40 60 100 160 160
第一行应该给我20,第二行应该给我。
我需要一个查询,它将显示Var1值,var2值和矩阵的结果(对于每一行)。
例如
VAR1 VAR2 MatrixResult
C2 C2 20
C1 C1 10
C2 C2 20
C2 C3 30
C1 C1 10
C2 C5 56
答案 0 :(得分:0)
这是我能想到的最简单的事情,只需比较大小写的值并相应地更改列名
Select m1.var1,m1.var2,
Switch (
m1.var2 = "C1", Value = m2.c1
m1.var2 = "C2", Value = m2.c2
m1.var2 = "C3", Value = m2.c3
m1.var2 = "C4", Value = m2.c4
m1.var2 = "C5", Value = m2.c5
) As value
from matrix1 m1,
Matrix2 m2
Where m1.var1 = m2.var1
答案 1 :(得分:0)
评论有点长,所以我会在适当的时候删除/更新。
看起来您已经设置了矩阵表,因为它将在Excel中使用
我建议改变表格的设计,使其有3个字段。 b = virus(a)
,Var1
作为主键和Var2
值为C1 ... C5的主键将允许25个带有矩阵值的记录。
我正要编写SQL来组合这两个表,然后才意识到你已经拥有了你在该表中的结果。结果表应该是您开始使用的矩阵,而不是矩阵表。
用它可以用SQL提取数据:
ReturnValue
将返回16.
所以我想下一个问题是:您是否尝试将表中的值插入新表/现有表中?
这就是应该如何存储矩阵。是否只有五列是真实表的一个例子?