我有一个会计应用程序,它具有一个名为company profiles的功能,而该功能又有一个名为“InvoicePrefix”的字段。因此,如果我的公司发票前缀为MY,则所有发票都应生成为MY / 2013-2014 / 001等等...... 同样,如果我将invoicePrefix作为ME,则发票应从ME / 2013-2014 / 001开始,依此类推。
现在我在所有公司的mysql中都有一个共同的发票表,因为我不知道之前公司的数量。
我需要的是每个invoicePrefix从1开始的发票序列。目前我正在生成发票号码(最后出现-MY / 2013-2014 / 001 )。这存在每个公司的序列中断的问题。
那么如何通过一些智能的mysql查询语句来实现这一目标呢?
答案 0 :(得分:0)
维护一个种子表,记录每个公司的当前指针,如
Company | Year | Seed
MY | 2013-2014 | 1
ME | 2013-2014 | 20
ME | 2012-2013 | 1120
创建一个用于在表中插入记录的proc首先检查公司记录是否存在于该特定年份的表中,如果没有插入该记录并使用1
启动种子计数器,则获取最新的种子值并更新计数器和获取值后,在表中相应地插入记录。