【发布时间】:2015-05-07 04:27:13
【问题描述】:
我有来自基于 MySQL 数据库的计费软件的表 invoice_header、invoice_rows 和 vat_codes。我需要添加我自己的表 invoice_vat。 对于每张新发票(或更新的发票),我需要将增值税率、净额和增值税额存储(或更新)到按增值税代码分组的表 invoice_vat 中。 我有几个 vate 代码和费率。例如我有:
ABC tax rate 5%
DEF tax rate 10%
GHI tax rate 22% etc.
对于每张发票,我可以一起销售一些带有 ABC 增值税的产品、一些带有 DEF 增值税的产品和一些其他带有 GHI 增值税的产品。通常我们不会在一张发票中使用超过 5 种不同的增值税率。 例如,我的一张发票如下所示:
product1, quantity 2pcs, unit_net_price 100.00, row_net_amount 200.00, vat ABC.
product2, quantity 3pcs, unit_net_price 50.00, row_net_amount 150.00, vat ABC.
product3, quantity 1pcs, unit_net_price 90.00, row_net_amount 90.00, vat DEF.
product4, quantity 4pcs, unit_net_price 25.00, row_net_amount 100.00, vat GHI.
对于这张发票,我需要将值存储到 invoice_vat 表中:
vat1_code ABC, vat1_rate 5, vat1_net_total_amount 350.00
vat2_code DEF, vat2_rate 10, vat2_net_total_amount 90.00
vat3_code GHI, vat3_rate 22, vat3_net_total_amount 100.00
vat4_code NIL, vat4_rate 0, vat4_net_total_amount 0.00
vat5_code NIL, vat5_rate 0, vat5_net_total_amount 0.00
我可以做以下查询:
SELECT invoice_rows.vat, sum(invoice_rows.row_net_amount) AS mysum
WHERE invoice_rows.id=655
group by invoice_rows.vat;
现在我需要存储从查询中获得的值,每次开新发票或修改/更新旧发票时。 我应该使用触发器吗?触发器应该怎么看? 朱塞佩
【问题讨论】:
标签: mysql triggers sum storage store