gpt4 book ai didi

mysql - 如何在mysql中插入其他表的总和?

转载 作者:行者123 更新时间:2023-11-28 23:13:47 26 4
gpt4 key购买 nike

我有两张 table

表 ORDINIUA

| ordiniua(pk) | fornitore | elemento | stimaarrivo | arrivato |
----------------------------------------------------------------
| 8ec230 | ABB | 17 | 10/10/2017 | 0 |
| 8ec520 | STE | 147 | | 1 |
| 8ec234 | FIS | 17 | 25/06/2017 | 1 |

四边形表

| elemento(pk) | numeroco  |descrizione| colonne | Ordini_Arrivati|
------------------------------------------------------------------
| 22 | 251.06/17 | | 6 | the sum |
| 17 | 168.05/17 | | 0 | the sum (1) |

当我写“总和”时,我想得到表 Ordiniua 字段“arrivato”的总和,其中“elemento”是相同的。例如:8ec520 上的 arrivato 为 0,8ec234 上的 arrivato 为 1,总和为 1。

是否可以自动生成此值(如 excel“sum if”)?如果是如何?

最佳答案

要执行您想要的操作,您应该使用 MySQL 触发器。当您INSERT 新行时:

DELIMITER $$

CREATE TRIGGER insertDatabase
BEFORE INSERT ON ordiniua
FOR EACH ROW
BEGIN
UPDATE quadri s
SET s.Ordini_Arrivati = s.Ordini_Arrivati + new.arrivato
WHERE s.elemento = new.elemento;
END;$$
DELIMITER ;

当您UPDATE 现有行时。请注意 UPDATE,因为您必须知道 arrivato 列中先前值和当前值之间的差异。

DELIMITER $$

CREATE TRIGGER updateDatabase
BEFORE UPDATE ON ordiniua
FOR EACH ROW
BEGIN
UPDATE quadri s
SET s.Ordini_Arrivati = s.Ordini_Arrivati + new.arrivato
WHERE s.elemento = new.elemento;
END;$$
DELIMITER ;

您可能希望有一个触发器来DELETE,但如您所见,您只需要遵循逻辑即可。希望对你有帮助

关于mysql - 如何在mysql中插入其他表的总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44805825/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com