Sql server 发现逐年递增的值

Sql server 发现逐年递增的值,sql-server,finance,trend,Sql Server,Finance,Trend,我有一个表,其中包含客户所欠债务的列表。我需要编写一个SQL查询来查找哪些客户的债务每年都在增加。基本上,我正在努力寻找每年不断增加的坏蛋,那些不断欠债的人。我想我正在寻找一种趋势 我用一些示例数据创建了一个。在这个例子中,我不关心customerId 2174,因为他们在很多年前只有两笔债务,然而,customerId 5218在过去3-4年中的债务额不断增加 理想情况下,我想要一个显示债务数量增加趋势的客户列表。i、 e.2015年有1家,2016年有5家,2017年有30家,等等。你可以试

我有一个表,其中包含客户所欠债务的列表。我需要编写一个SQL查询来查找哪些客户的债务每年都在增加。基本上,我正在努力寻找每年不断增加的坏蛋,那些不断欠债的人。我想我正在寻找一种趋势

我用一些示例数据创建了一个。在这个例子中,我不关心customerId 2174,因为他们在很多年前只有两笔债务,然而,customerId 5218在过去3-4年中的债务额不断增加

理想情况下,我想要一个显示债务数量增加趋势的客户列表。i、 e.2015年有1家,2016年有5家,2017年有30家,等等。

你可以试试这个

; with cte as 
(SELECT customerId
      ,YEAR(debtDate) AS debtYear
      ,COUNT(*) AS debtCount
FROM dbo.Debts
   -----   apply year filter over there if want to select record for particular year range
GROUP BY YEAR(debtDate)
        ,customerId
)
, CT AS 
(
      SELECT C.* FROM CTE AS C 
      CROSS APPLY (
            SELECT * FROM CTE AS CC 
            WHERE C.customerId=CC.customerId
                AND C.debtYear>CC.debtYear 
                AND C.debtCount>=CC.debtCount
                ) AS D
)
SELECT DISTINCT customerId FROM CT  --- IF NEED JUST CUSTOMER NAME
------- OR IF NEED ALL DETAILS ADD debtYear, debtCount COLUMN

你需要具体说明条件。‘过去3-4年中债务额不断增加’太笼统了,从样本数据来看,我根本看不出债务有增加的趋势。或者你指的是金额?我指的是债务的数量。如中所述,每年都有一个客户持续欠债。那么,您需要的具体条件是什么?不一定是“条件”,我想在某种报告中使用这个条件,现在,我只需要一份多年来欠债不断增加的客户名单。多少年?当您编写一个查询时,您不能编写一个随着时间的推移债务数量不断增加的查询。你需要具体点谢谢,这正是我想要的,只是在我脑子里想不出来…@TaylorN:别提;