Использование SQL Серверная последовательность для расчета, т.е. номер счета - PullRequest
0 голосов
/ 06 января 2020

Я должен рассчитать отдельное число для счета на одного клиента и в год. Возможно ли сделать это с SQL серверной последовательностью и Next value for?

1 Ответ

0 голосов
/ 06 января 2020

Я думаю, вам нужна оконная функция, скорее всего 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

, чтобы обеспечить если у вас нет дублирующего номера счета на одного клиента, вы должны убедиться, что заказ нарушает любые связи.

...