【问题标题】:using access sql to do INSERT INTO (aggregate function)使用access sql做INSERT INTO(聚合函数)
【发布时间】:2023-03-28 15:10:01
【问题描述】:

这是我的代码:

insert into archive from temp where temp.field6>archive.field6

我想将整行插入到表 archive 中的表 temp 中,其中一个字段大于另一个字段。

我的语法有什么问题?它给了我ERROR ON INSERT InTO

编辑:

这是我目前所拥有的:

INSERT INTO archive
SELECT temp.*
FROM temp, archive
WHERE temp.field6>max(archive.field6);

对不起,我的第一个查询完全错了

请注意新的 MAX

我收到一个错误,因为我无法在此处使用聚合函数。

【问题讨论】:

  • 我什至不知道从哪里开始解决这个问题。您缺少一个选择(如果您要进行比较,则需要包括临时表和存档表)。也许您可以更具体地说明您正在尝试完成的工作以及您已经完成的工作以尝试自己解决。
  • @lamb ive 已更新,感谢您的帮助

标签: sql ms-access insert


【解决方案1】:
INSERT INTO archive
SELECT temp.*
FROM temp
WHERE temp.field6>(SELECT max(archive.field6) FROM archive);

【讨论】:

    【解决方案2】:

    根据MSDN,您需要对 SELECT 使用更全面的语法。例如:

    INSERT INTO archive SELECT temp.* FROM temp, archive 
    GROUP BY temp.field6 HAVING temp.field6 > max(archive.field6);
    

    【讨论】:

    • 谢谢你已经完成了,但它要求我提供 temp.fiel6 和另一个的值
    • @I__:是的,更新了答案,但我不确定这是否是您想要的。我假设存档和临时具有相同的架构。否则,您需要为插入列表和选择列表指定列列表。
    • 再次感谢您,。您的查询无效。它确实附加了行,但太多了。我觉得有一个错误。是的,两个表都有相同的架构
    猜你喜欢
    • 2019-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-20
    相关资源
    最近更新 更多