2016-09-09 2 views
0

Наши дни оплаты зависят от клиента. Поскольку мне нужно отслеживать клиент за отчетный период, я бы хотел настроить параметры автоматически. Эта информация будет заполнять отчет.Определить окно на основе дня счета

Код Поставка жидкостных хроматографов не работает, но показывает, что я хотел бы достичь:

declare @BillDate int 
set @BillDate = 18 

if @billdate > DATEPART(dd, getdate()) 
    select DATEPART(yyyy, getdate()) ++ DATEPART(mm,getdate()) ++ @BillDate --last bill date 
else 
    select DATEPART(yyyy, getdate()) ++ DATEPART(mm,getdate())-1 ++ @BillDate --last bill date 

Я также думал о добавлении в месяц с помощью dateadd(), но я должен был бы изменить день часть дня, который я не уверен, как это сделать.

Есть ли общепринятый способ сделать это? Обе мои идеи в лучшем случае выглядят как хаки.

Редактировать/обновление: Я буду использовать это для фильтрации в ИНЕКЕ, так:

declare @LastBillDate date, @billday as int 
select @billday = billdate from btable where customer = 'Cust' 

--Define @LastBillDate here based on getdate() and @billday 

SELECT * 
FROM atable 
WHERE starttime > @LastBillDate 
+2

образец данных и желаемых результатов будет лучше проиллюстрируйте то, что вы хотите достичь. –

ответ

0

Изменение оператора выбора, как показано ниже:

SELECT CONCAT(DATEPART(yyyy, getdate()),'-',DATEPART(mm,getdate()),'-',@BillDate) 
Смежные вопросы