我需要一些帮助,以便在MS Access中使用SQL查询执行以下操作。SQL MS ACCESS:表和筛选结果之间的选择性操作
我想执行在下面的例子中所示的操作:
初始表
表A
Name H1 H2 H3
A 5 10 5
B 1 2 3
C 7 3 1
表B:
Name H1 H2 H3
1 1 1 1
2 2 2 2
1 )第一步:结果
NAME TABLE A NAME TABLE B H1 H2 H3
A 1 4 9 4
A 2 3 8 3
B 1 0 1 2
B 2 1 0 1
C 1 6 2 0
C 2 5 1 1
所以,这个新表的第一行被计算为ABSOLUTEVALUE(表A(行A) - 表B(ROW1)),该表的第二行。将ABSOLUTEVALUE(表A(行A) - 表B(第2行))等等。
2)第2步骤:结果
NAME TABLE A NAME TABLE B H1 H2 H3 Total
A 1 4 9 4 17
A 2 3 8 3 14
B 1 0 1 2 3
B 2 1 0 1 2
C 1 6 2 0 8
C 2 5 1 1 7
因此,在这个步骤中,我将需要添加一个字段WHIS被计算为值H1,H2和每行
3的H3的总和)最终步骤:结果
Name H1 H2 H3
A 3 8 3
B 1 0 1
C 5 1 1
而且在最后的步骤中,我们选择从上表中,其中场总计具有最小值的那些A,B &ç行。
谢谢!
数据库是不一个电子表格,并不像一个工作。表格需要通过常用值而不是行位置相关。此外,“名称”是保留字,不应用作字段名称。您应该对数据库设计和规范化进行一些研究,并重新设计您的表格。 – AVG
AVG,虽然它们通常使用不佳,但CROSS JOIN有时仍然是一种适合某种情况的工具。由于这种情况使用这两个表的笛卡尔乘积而不需要排除'WHERE','CROSS JOIN'对于这种情况是理想的。它们通常写成'FROM A,B',尽管有些语言允许'A CROSS JOIN B'。我同意你使用'Name'。尽管我也相信正常化的优势等等,但我不相信这种情况下的表格可以进一步正常化(有时会发生这种情况)。 – toonice