在Access中使用矩阵,在另一个表

时间:2017-10-13 17:50:54

标签: sql ms-access access-vba ms-access-2010

我在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

2 个答案:

答案 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.

所以我想下一个问题是:您是否尝试将表中的值插入新表/现有表中?
这就是应该如何存储矩阵。是否只有五列是真实表的一个例子?