Tsql 如何编写T-SQL查询,以计算当月最后一天过期31天或以上的金额总和?

Tsql 如何编写T-SQL查询,以计算当月最后一天过期31天或以上的金额总和?,tsql,conditional-statements,Tsql,Conditional Statements,我正试图计算每月最后一天逾期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.A

我正试图计算每月最后一天逾期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
选择总和(t.金额)-总和(p.金额)
从发票t加入付款p
在p.AccountNum=t.AccountNum上
其中t.InvoiceDate
最后一行中的表达式,
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日e.t.c.

Charles这样的边缘案例,非常感谢。正如你所说,我还有一些需要考虑的属性。但你的建议确实有助于我从头开始。