使用SQL的新手,我无法完成我认为很简单的事情。
我正在尝试创建和插入,将MAX()值从一个表中的第一列插入另一个表中的第一列,而其余列将填充参数。
我已经尝试切换我的代码,看看我是否只是语法错误但是我没有运气而且我甚至不确定我想要做什么是可能的(至少在单个INSERT中)
这就是我现在所拥有的:
INSERT INTO [Table2] VALUES(SELECT(Number FROM [Table1] WHERE Max(Number)), @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10)
答案 0 :(得分:1)
select语句必须括在括号中,我建议你总是把列表放在insert语句中
Insert into [MyTable] (Max,Value1,Value2,Value3) values((select Max(Number) from Table1),@p1,@p2,@p3)
答案 1 :(得分:0)
首先: SELECT MAX 语句错误,正确的语法是:
SELECT Max(Number) From [Table1]
第二: INSERT 语法错误。要使用子查询,您必须为目标表中的每个字段选择值,而如果使用 VALUES 关键字,则必须指定要插入值的字段。
所以你的查询必须是这样的:
INSERT INTO [Table2]
SELECT Max(Number), @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10 From [Table1]
OR(我出于实际原因使用较小的参数)
INSERT INTO [Table2] (field1,field2,field3)
VALUES
(@MAX, @p1, @p2)
其中@MAX是包含
结果的变量SELECT Max(Number) From [Table1]