在 Access 中使用矩阵,在另一个中使用行作为列 table
Using a matrix in Access, using a row as a column in another table
我在 Ms-Access 中有一个 table,它有两列,VAR1 和 VAR2。
这些列有基于 c1-c2-c3-c4-c5 的变量。
第二个table是一个矩阵。我需要使用 VAR1 和 VAR2 之间的相关性从矩阵中获取数字。
例如:
----TABLE----
VAR1 VAR2
C2 C2
C1 C1
C2 C2
C2 C3
C1 C1
C2 C2
------------矩阵----------------
-------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,第二行应该给我 10。
我需要一个查询来显示 Var1 值、var2 值和矩阵的结果(对于每一行)。
例如
VAR1 VAR2 矩阵结果
C2 C2 20
C1 C1 10
C2 C2 20
C2 C3 30
C1 C1 10
C2 C5 56
这是我能想到的最简单的事情,只需比较值以防万一并相应地更改列名
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
评论有点长,所以我会 delete/update 适当的。
看起来您已经设置了矩阵 table,因为它将在 Excel 中使用。
我建议将 table 的设计更改为具有 3 个字段。 Var1
、Var2
作为主键和 ReturnValue
.
值为 C1...C5 的主键将允许 25 条记录与您的矩阵值。
我正要编写 SQL 来组合两个 table,然后才意识到您已经在那个 table 中得到了您想要的结果。而不是矩阵 table 你得到的结果 table 应该是你开始的矩阵。
有了它,您可以使用 SQL:
提取数据
SELECT ReturnValue FROM Matrix WHERE Var1='C1' AND Var2='C2'
会 return 16.
所以我想下一个问题是:您是否尝试将 table 中的值插入到新的 table/existing table 中?
这就是该矩阵的存储方式。只有五列是真实的例子吗table?
我在 Ms-Access 中有一个 table,它有两列,VAR1 和 VAR2。
这些列有基于 c1-c2-c3-c4-c5 的变量。
第二个table是一个矩阵。我需要使用 VAR1 和 VAR2 之间的相关性从矩阵中获取数字。
例如:
----TABLE----
VAR1 VAR2
C2 C2
C1 C1
C2 C2
C2 C3
C1 C1
C2 C2
------------矩阵----------------
-------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,第二行应该给我 10。
我需要一个查询来显示 Var1 值、var2 值和矩阵的结果(对于每一行)。
例如
VAR1 VAR2 矩阵结果
C2 C2 20
C1 C1 10
C2 C2 20
C2 C3 30
C1 C1 10
C2 C5 56
这是我能想到的最简单的事情,只需比较值以防万一并相应地更改列名
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
评论有点长,所以我会 delete/update 适当的。
看起来您已经设置了矩阵 table,因为它将在 Excel 中使用。
我建议将 table 的设计更改为具有 3 个字段。 Var1
、Var2
作为主键和 ReturnValue
.
值为 C1...C5 的主键将允许 25 条记录与您的矩阵值。
我正要编写 SQL 来组合两个 table,然后才意识到您已经在那个 table 中得到了您想要的结果。而不是矩阵 table 你得到的结果 table 应该是你开始的矩阵。
有了它,您可以使用 SQL:
提取数据
SELECT ReturnValue FROM Matrix WHERE Var1='C1' AND Var2='C2'
会 return 16.
所以我想下一个问题是:您是否尝试将 table 中的值插入到新的 table/existing table 中?
这就是该矩阵的存储方式。只有五列是真实的例子吗table?