月末に 31 日以上延滞する金額の合計を計算しようとしています。これまでのところ、これを行ってきましたが、月の最終日に 2 番目の条件を適用する方法がわかりません。ヒントをありがとう
SELECT SUM(balance_amount) AS total_amount FROM MyTable
WHERE DATEDIFF(dd,date_due,date_paid) >= 31
月末に 31 日以上延滞する金額の合計を計算しようとしています。これまでのところ、これを行ってきましたが、月の最終日に 2 番目の条件を適用する方法がわかりません。ヒントをありがとう
SELECT SUM(balance_amount) AS total_amount FROM MyTable
WHERE DATEDIFF(dd,date_due,date_paid) >= 31
明らかに、月の最終日に 31 日延滞している金額は、支払いが行われていない限り、月末の 31 日前の日付のトランザクションの金額です。
Select Sum(t.Amount) - Sum(p.Amount)
From invoices t join payments p
On p.AccountNum = t.AccountNum
Where t.InvoiceDate < DateAdd(month, 1 + datediff(month, 0, getdate()), 0)-32
最後の行の式は、 (スキーマにアクセスしないと) 見えないDateAdd(month, 1+datediff(month, 0, getdate()), 0)
翌月の最初のもの
です。アカウントの残高だけから、31 日遅れの残高がどのくらいになるかをどのように知ることができますか?今月末。
このようなことを試してください
Select Dateadd(d,-DATEPART(d,DateAdd(m,1,getdate())),DateAdd(m,1,getdate())) as [Last Day of Month]
今日の日付に 1 か月を加算し、この特定の月の日数を減算して、現在の月の最終日を計算します。2月28日などのいくつかのエッジケースを試してください