Member 14563525 Ответов: 0

Как вставить в базу данных последний день месяца перед новой месячной транзакцией


Date         next date.   Qty.  Item1.  Item2
2020-08-01.  2020-08-15.   2.     1.      1
2020-08-15.  2020-08-28.   3.     1.      2
2020-08-28.  ????
2020-09-01


Вставьте последний день предыдущего месяца перед вставкой нового месяца в БД.

Select distinct t1.AccNo,t1.in date,ifnull((select min(t1.min.in date) from t1 as t1min where t1min.in date>t1.in date and t1.AccNo = t1min.AccNo),
Date(t1.in date,'start of month', '+1 month', '0 day')) as nextdate


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

Я не знаю, с чего начать. БД получает свои данные из формы 1. Который вставляется в t1. Запрос create в sqlite делает следующую дату, чтобы я мог вычислить количество дней между каждой следующей датой и зарядкой за дни.

j snooze

как правило, вы можете просто взять 1-й день следующего месяца и вычесть день, чтобы получить последний день любого конкретного месяца. в c# вы можете взять дату 9/1 и сделать a .AddDays(-1) для объекта DateTime.

Member 14563525

ОК. Мое извинение. Следующая сделка на новый месяц может быть на 2020-09-05. Запрос автоматически примет эту дату за следующую дату, которая тогда будет неправильной .например, в приведенном выше с 28/8 по 31/08-это 4 дня найма. Мне нужно автоматически вставить следующую дату в последнюю транзакцию за предыдущий месяц в качестве последней даты этого месяца перед тем, как новая попадет в БД.

Richard MacCutchan

Итак, возьмите введенную дату, установите день равным 1 и вычтите 1. Это даст вам последний день предыдущего месяца.

Member 14563525

Это не сработает. Какая-то сделка состоится 06 числа следующего месяца.
На данный момент принудительный месячный прогон проводится со всеми клиентами с нулевой продажей бала. Вот тогда и наступает последний день. Плата за обслуживание взимается за каждый день использования. Так что если у него было 10 предметов на 15/08, то он будет заряжен на 15 дней до 15-го тая. Но 16 - го числа он вернул 4 из этих предметов . Так что 16 - го числа ему будет предъявлено обвинение по 6 пунктам. И в последний день месяца он должен быть за этот месяц иначе дни начисленные в конце месяца будут неправильными

Richard MacCutchan

Итак, добавьте 1 к месяцу, установите день равным 1 и вычтите 1 из числа дней. Как бы вы на это ни смотрели, это всего лишь пара простых утверждений.

Member 14563525

Где бы я это сделал? В форме, когда дата больше последней даты или выполняется хранимая процедура в поле Дата изменения.

Richard MacCutchan

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

0 Ответов