我正在尝试计算该月最后一天逾期 31 天或更长的金额。到目前为止,我已经做到了这一点,但我不确定如何在本月的最后一天应用第二个条件。感谢您的提示
SELECT SUM(balance_amount) AS total_amount FROM MyTable
WHERE DATEDIFF(dd,date_due,date_paid) >= 31
我正在尝试计算该月最后一天逾期 31 天或更长的金额。到目前为止,我已经做到了这一点,但我不确定如何在本月的最后一天应用第二个条件。感谢您的提示
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 日等