仅在满足条件时才插入Mysql

时间:2017-11-08 12:13:31

标签: mysql

好的我想做的就是这个。 我只想插入如果我插入的金额,加上列的总和不超过我的值,例如112.我只是总结一个发票金额,这是销售发票ID的来源。所以我要添加一个金额为20英镑。

所以我基本上需要一个查询说 如果金额+“列总和”小于或等于总数量,则插入金额。

所以这是我的表格布局

sipID|SalesInvoice_id|Date|Amount
1|116|07/11/2017|2|
2|115|07/11/2017|88|
3|116|07/11/2017|22|
7|115|07/11/2017|22|

所以我认为INSERT SELECT可能有效,所以我开始先让SELECT查询工作,这是我的工作选择查询

SELECT SUM(`Amount`) FROM `salesinvoice_payments`
GROUP BY `SalesInvoice_id` HAVING SUM(`Amount`)+20 <= 112 AND `SalesInvoice_id`=115

基本上,目前我正在努力编码我希望添加的数量,即20。 那么这个选择语句正在做什么。如果SUM(Amount)+ 20小于或等于112这是我的总数,它将只获得一个值。 这很好用。

回到我原来的问题。我想仅在条件为真时插入。 我似乎无法获得正确的格式,例如

INSERT INTO `salesinvoice_payments` (`Amount`)VALUES (20)
SELECT SUM(`Amount`) FROM `salesinvoice_payments`
GROUP BY `SalesInvoice_id` HAVING SUM(`Amount`)+20 <= 100 AND `SalesInvoice_id`=115

1 个答案:

答案 0 :(得分:3)

INSERT INTO ... SELECT没有VALUES声明。

<强>查询

INSERT INTO `salesinvoice_payments` (`Amount`)
SELECT 20 FROM `salesinvoice_payments`
GROUP BY `SalesInvoice_id` HAVING SUM(`Amount`) + 20 <= 100 AND `SalesInvoice_id`= 115