【问题标题】:How to insert a calculated SUM in a table如何在表中插入计算的 SUM
【发布时间】:2014-11-23 12:17:47
【问题描述】:

我有一张表,其中包含 PRICE int value 、 QUANTITE int value 、 TOTAL int value 列 我想插入 PRICE 和 QUANTITE 并让 SQL 查询为我计算总数,她是我的查询的样子

INSERT INTO table_name (PRICE,QUANTITE,TOTAL)
VALUES ('4800','3',PRICE * QUANTITE);

它不起作用,所以我尝试了另一个查询

INSERT INTO table_name (PRICE,QUANTITE,TOTAL)
VALUES('4800','3',SELECT (QUANTITE * PRICE) as TOTAL from table_name);

这也不起作用,有什么建议吗?

【问题讨论】:

  • 如果您不想重复 INSERT 上的值,请使用触发器来更新 TOTAL 列。另外 sql server 和 mysql 是不同的东西。
  • 完全删除该列。规范化的规则之一是不存储计算值。
  • 给出你的表值和错误信息。
  • 你当然可以在你的表中添加一个计算列来计算这个。

标签: mysql sql sql-server visual-studio-2010 sql-insert


【解决方案1】:

您可以使用insert . . . select

INSERT INTO table_name(PRICE, QUANTITE, TOTAL)
    SELECT price, quantite, price * quantite
    FROM (SELECT 4800 as Price, 3 as Quantite) t;

注意:你不应该对数字常量使用单引号。仅对字符串和日期常量使用单引号。

【讨论】:

  • @AbdeslemCharif 。 . .作为 OP,您可以选择接受您喜欢的任何答案。不过,我很好奇,为什么你会选择另一个答案,这似乎更复杂,因为它需要声明一个变量。
  • 我没注意我教的是你的答案,我已经接受了,现在 4 年后我觉得不,我确实接受了错误的答案,哈哈@Gordon Linoff
【解决方案2】:

用变量来做

DECLARE @I INT 
INSERT INTO table_name 
SELECT PRICE,QUANTITE,@i=(QUANTITE * PRICE)  
from table_name
WHERE PRICE=4800 AND QUANTITE=3

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-21
    • 2017-09-08
    相关资源
    最近更新 更多