添加语句时"Query input must contain at least one table or query"错误"INSERT INTO"



Expr1 找到行中最高的数字,我想将其存储在"最大数字"字段中。

SELECT [impact test].num1, [impact test].num2, [impact test].num3, [impact test].[max num], 
IIf([num1]>[num2] And [num1]>[num3],[num1],
IIf([num2]>[num1] And [num2]>[num3],[num2],
IIf([num3]>[num1] And [num3]>[num2],[num3],"Error"))) AS Expr1, 
INSERT INTO [impact test] ([max num]) VALUES (Expr1) 
FROM [impact test];

"查询输入必须至少包含一个表或查询"错误在声明要在其中存储值的列开始时突出显示"("。我已经尝试了几种不同的方法,例如

INSERT INTO [impact test].[max num] VALUES (Expr1)
INSERT INTO [impact test] (max num) VALUES (Expr1)
INSERT INTO [impact test].[max num] ([max num]) VALUES (Expr1)
INSERT INTO [impact test].[max num] (max num) VALUES (Expr1)

但这些都不起作用。任何帮助将不胜感激。

编辑示例数据和所需结果:

num1   num2   num3   [max num]
2      5      1         5
3      4      6         6
7      3      4         7

我只想在 [最大数字] 字段中存储每行的最高数字。我尝试查找其他方法,但它们都只有最大列数,而不是行数。

我认为你想要一个update并且没有聚合函数:

UPDATE [impact test] 
SET [max num] = IIf([num1] > [num2] And [num1] > [num3], [num1],
IIf([num2] > [num1] And [num2] > [num3], [num2],
IIf([num3] > [num1] And [num3] > [num2], [num3], "Error")
)
);

您可以将逻辑简化为:

UPDATE [impact test] 
SET [max num] = SWITCH([num1] > [num2] And [num1] > [num3], [num1],
[num2] > [num3], [num2],
[num3]
);

我认为"Error"值没有任何帮助。 它只会导致类型混淆。

相关内容

最新更新