sql-server - 使用 SQL Server 序列进行计算,即发票编号
问题描述
我必须为每个客户和每年计算单独的发票编号。是否可以使用 SQL Server 序列来执行此操作Next value for
?
解决方案
我猜你很可能需要一个窗口函数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
为确保您没有每个客户的重复发票编号,您必须确保订单通过打破任何联系。
推荐阅读
- python - 打开一个JS文件,用Python编辑一行
- javascript - 如何从数组Javascript中的最后一个元素中删除空格
- android - PreferenceFragmentCompat 的 iconSpaceReserved 默认为 true
- rest - 使用过期授权令牌请求的公开可用 api 资源的正确行为
- php - 如何避免mysql查询中的like语句为空
- symfony - VueJS - 如何在没有 vue-fontawesome 的情况下导入 import fontawesome-free 5?
- java - 如何将 CDATA 添加到 xml
- python - 处理只读用户输入的面向对象的方式
- jsf - 不呈现选项
- html - WordPress 问题,带有链接 div 和主题背景