Member 11797166 Ответов: 2

Как сбросить счет нет каждый день в SQL или C#


how to reset bill no everyday in sql or c#


Что я уже пробовал:

с циклом c#, чтобы проверить дату каждый раз, идет грязно.

CHill60

Пожалуйста, уточните свой вопрос и поделитесь кодом, который вы пробовали. Здесь недостаточно информации, чтобы мы могли вам помочь

2 Ответов

Рейтинг:
5

Maciej Los

Если вы хотите увеличить BillNo до следующей даты в многопользовательской среде я бы предложил создать вычисляемый столбец в вашей таблице , который получит функцию SQL в виде формулы. Эта функция получит дату продажи в качестве входных данных и возврата MAX(BillNo) +1. Например:

CREATE FUNCTION BillNumberForDate(@inputDate DATE TIME) RETURNS INT
AS
BEGIN
    DECLARE @bn INT = 0;
    SELECT @bn=COALESCE(MAX(BillNo), 0) + 1
    FROM YourTable
    WHERE CONVERT(DATE, SaleDate) = @inputDate
RETURN @bn
END;


Как добавить эту функцию в вычисляемый столбец вашей таблицы? Видеть: Формула для свойства спецификации вычисляемого столбца в SQL Server 2012[^]

Для получения более подробной информации, пожалуйста, смотрите:
СОЗДАТЬ ФУНКЦИЮ (Transact-SQL) | Microsoft Docs[^]
Указание вычисляемых столбцов в таблице | Microsoft Docs[^]

Примечание:
Я бы настоятельно не советовал вам "производить" BillNo на стороне клиента по множеству причин. Например: вы получите дубликат BillNoс.


Member 11797166

спасибо Мацей Лос

Maciej Los

Всегда пожалуйста.

Рейтинг:
0

RickZeeland

Смотрите ответ здесь, он включает в себя использование отдельного Нить это запускает событие: c# wpf Datetime changed (New day has come) событие - переполнение стека[^]