Sql 从一个表列中选择一个最小值,并在一个 SQL 语句中将结果插入到另一个表列中

Posted

技术标签:

【中文标题】Sql 从一个表列中选择一个最小值,并在一个 SQL 语句中将结果插入到另一个表列中【英文标题】:Sql Select a minimum value from a table column and insert the results in another table column in one SQL statement 【发布时间】:2018-10-28 14:18:28 【问题描述】:

我正在尝试从 Candidate 表中获取最小值并将该值插入 MinTotal 表中。你能在一条 SQL 语句中同时完成这两项工作吗?

这是我的 SQL 语句:

UPDATE MinTotal SET MinTotal.min_total=  MIN(CandidateID.TotalVotes); 

【问题讨论】:

您使用的是哪个 dbms? 【参考方案1】:
UPDATE MinTotal a
INNER JOIN (SELECT MIN(c.TotalVotes) min_vote, c.CandidateID FROM Candidate c 
GROUP BY c.CandidateID) b ON b.CandidateID = a.CandidateID 
SET a.min_total = b.min_vote;

试试上面的。这是针对每个候选人的,否则您可以使用提供的其他答案。

【讨论】:

【参考方案2】:

您必须使用 select 才能正确设置 MIN()。 这样做的一种方法是:

UPDATE MinTotal
SET 
   min_total = Cmin.minresult
FROM (
    SELECT MIN(TotalVotes) as minresult
    from CandidateID
) Cmin

一般来说,这是解决问题的一种方法。在这种情况下,您将为 MinTotal 表中的每一行设置 minresult。如果您不希望这样,您可能需要更具体地了解您想要的输出,并在您的问题中添加一些示例

【讨论】:

【参考方案3】:
UPDATE MinTotal   
SET MinTotal.min_total = (
   SELECT MIN(TotalVotes)
   FROM CandidateID 
);

【讨论】:

以上是关于Sql 从一个表列中选择一个最小值,并在一个 SQL 语句中将结果插入到另一个表列中的主要内容,如果未能解决你的问题,请参考以下文章

另一个表列中多个值条件的SQL命令错误

如何在代码中的sql表列中插入默认值

C# SQL:如何为 SQL 表列中的每个不同值启动代码?

返回表列中的最后一个值

在 SQL Server 的表列中使用 UDF 作为默认值

如何从 SQL Server 读取 MS Access 数据库以更新一个或多个表列中的数据?