好的我想做的就是这个。 我只想插入如果我插入的金额,加上列的总和不超过我的值,例如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
答案 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