0

顧客が請求書を早期または後期に支払う日数を計算しようとしています。

select 
    a.Invoice, 
    datediff(day,InvoiceDate,JournalDate) as Days, 
    c.DueDays, 
    c.Description as Terms  

from 
    ArInvoice a 
    Inner Join ArInvoicePay b on a.Invoice = b.Invoice 
    Inner Join TblArTerms c on a.TermsCode = c.TermsCode

これは、請求日を条件とする顧客に最適です。問題は、たとえば月末が 60 日のお客様向けです。InvoiceDateを使用し、他の 2 つのフィールドを使用してInvDayOfMonth = '31'日数InvMonths = '2'を計算する方法を考え出すのに苦労しています。

簡単に言うと、から 31 日までの日数を計算する必要があり、InvoiceDateこれを に追加してから 31 を掛けInvMonthます。

任意のポインタをいただければ幸いです。

4

1 に答える 1

0

SQLは次のようになります

SELECT 
dateadd(day,-1,
dateadd(month, 2, --Your variable here
--replace getdate with Invoice date, and figure out the 0+month part
convert(DATE, cast(Year(getdate()) as NVARCHAR) + '0'+cast(Month(getdate()) as NVARCHAR) + '01')))

あなたのコメントのために答えは簡単です

SELECT 
dateadd(day,60,InvoiceDate) 
--replace 60 with the number You've already calculated
于 2012-09-03T12:56:17.917 に答える