首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SQL Server运行total,使用365天窗口功能根据美元金额查找帐户

SQL Server运行total,使用365天窗口功能根据美元金额查找帐户
EN

Stack Overflow用户
提问于 2018-08-28 04:02:54
回答 2查看 70关注 0票数 0

我的问题。我需要运行每日报告,以查找已支付10,000美元或更多的帐户在365期间从报告运行的日期起。我需要一个查询,它可以获取付款信息,并为每个帐户运行合计,如果任何帐户在365窗口内进行了总计10,000美元或更多的付款,查询将返回达到阈值的日期或帐号,我可以使用任何一个。

到目前为止,这是我的查询的适用部分,但它不能正常工作。我基于我的另一个查询,通过从当前余额中减去付款来实现类似的目的。我认为我可以修改它来工作,但一直没有成功。需要注意的是,我还没有应用365过滤器。在增加复杂性之前,我会先确保查询的基本部分有效。我使用的是SQL Server 2014。

代码语言:javascript
运行
复制
CREATE TABLE #PaymentDate
(number int,
paymentdate date,
balance money)


;
WITH Balances1 AS
(
    SELECT *,
        SUM(TotalPaid) OVER (PARTITION BY number, DatePaid ORDER BY 
DatePaid, number) AS Balance
    FROM #Accounts
)
, Balances2 AS
(
    SELECT *, ISNULL(LAG(Balance) OVER (PARTITION BY number, DatePaid ORDER 
BY DatePaid, number), 0) AS Prev
    FROM Balances1
)
INSERT INTO #PaymentDate
SELECT number, DatePaid, balance
FROM Balances2
WHERE Balance >= 10000 AND Prev < 10000
;

无法正确添加或忽略符合条件的一次性付款的帐户。

一些样本数据。查询应该返回前3个帐户,因为它们的支付总额都在365天窗口内(今天的日期是8/27/18)。不应包含第4个账户,因为支付总额超过10000需要超过365天:

代码语言:javascript
运行
复制
Number  DatePaid    TotalPaid
123456  2017-12-01  12184.46
654321  2018-02-28  10000
231645  2017-05-31  3390
231645  2017-06-29  1565.29
231645  2017-07-26  1565.29
231645  2017-08-28  1565.29
231645  2017-09-28  1565.29
231645  2017-10-27  1565.29
231645  2017-12-01  6783.55
312546  2016-08-01  550
312546  2016-09-06  500
312546  2016-10-04  500
312546  2016-11-07  500
312546  2016-12-06  500
312546  2017-01-04  500
312546  2017-02-08  500
312546  2017-03-07  500
312546  2017-04-10  500
312546  2017-05-09  500
312546  2017-06-07  500
312546  2017-07-05  500
312546  2017-08-07  500
312546  2017-09-05  500
312546  2017-10-11  500
312546  2017-11-09  500
312546  2017-12-11  250
312546  2018-01-16  250
312546  2018-02-20  250
312546  2018-03-20  250
312546  2018-04-23  500
312546  2018-04-23  50
312546  2018-05-29  500
312546  2018-07-03  500
312546  2018-07-31  204

任何对我在哪里走错了弯的洞察都是非常感谢的。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52046256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档