作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两张 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/
我是一名优秀的程序员,十分优秀!