Expr1找到行中的最大数字,我想将其存储在“max num”字段中。
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
我只想存储[max num]字段中每行的最高编号。我尝试查找其他方法,但它们只有最大列,而不是行。
答案 0 :(得分:1)
我认为你想要一个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"
值无助于任何事情。它只是导致类型混乱。