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"
值没有任何帮助。 它只会导致类型混淆。