Unsere Rechnungstage variieren je nach Kunde. Da ich einen Kunden nach Berichtsperiode verfolgen muss, möchte ich die Parameter automatisch anpassen. Diese Information füllt einen Bericht.Fenster basierend auf dem Rechnungstag definieren
Der bolow Code nicht funktioniert, aber was zeigt ich erreichen möchte:
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
ich auch über das Hinzufügen eines Monats gedacht haben, mit dateadd()
, aber ich würde den Tag Tageszeit ändern müssen, Ich bin mir nicht sicher wie.
Gibt es einen allgemein akzeptierten Weg, dies zu tun? Beide meine Ideen scheinen bestenfalls Hacks zu sein.
Edit/Update: Ich werde dies unter Verwendung von in einer where-Klausel zu filtern, so:
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
Datenabtastwert und die gewünschten Ergebnisse würden besser illustrieren, was Sie erreichen möchten. –