首页 > 解决方案 > 使用 SQL Server 序列进行计算,即发票编号

问题描述

我必须为每个客户和每年计算单独的发票编号。是否可以使用 SQL Server 序列来执行此操作Next value for

标签: sql-serversequence

解决方案


我猜你很可能需要一个窗口函数RANK()

说你有你的订单表

order_id | cust_id | transaction_time |

select
    CONCAT(Year(transaction_date), '-', rank() over (partition by cust_id, year(transaction_date) order by transaction_date desc, id)) as invoice_number
,   order_id
,   cust_id
,   transaction_time
from orders

为确保您没有每个客户的重复发票编号,您必须确保订单通过打破任何联系。


推荐阅读