Sql server 过去12个月无活动的最大月Nbr
我有一个包含以下项目的数据集:Sql server 过去12个月无活动的最大月Nbr,sql-server,tsql,Sql Server,Tsql,我有一个包含以下项目的数据集: 月年 帐户编号 总收入 如果某个账户没有给定月份的总收入,则该账户/月份没有记录 我想知道每个帐户-该帐户连续几个月没有收入的最大值是多少 例如,如果账户123在过去12年中每个月都有收入,则其计数将为0 如果账户987连续4个月有收入,则连续5个月无收入,剩余月份的收入为5 如果账户657每隔一个月有一次活动,则其计数将为1,b/c 1是连续几个月无活动的最大值 提前谢谢 样本数据 **Accnt** |**Month-Yr** |**Revenue**
**Accnt** |**Month-Yr** |**Revenue**
123 |8/1/2016 |1000
123 |9/1/2016 |1500
123 |10/1/2016 |500
123 |11/1/2016 |100
123 |12/1/2016 |250
123 |1/1/2017 |750
123 |2/1/2017 |900
123 |3/1/2017 |700
123 |4/1/2017 |1200
123 |5/1/2017 |250
123 |6/1/2017 |750
123 |7/1/2017 |900
123 |8/1/2017 |700
123 |9/1/2017 |1200
987 |8/1/2016 |100
987 |9/1/2016 |250
987 |10/1/2016 |750
987 |11/1/2016 |900
987 |5/1/2017 |700
987 |6/1/2017 |1300
987 |7/1/2017 |250
987 |8/1/2017 |750
987 |9/1/2017 |900
657 |8/1/2016 |700
657 |10/1/2016 |1200
657 |12/1/2016 |100
657 |2/1/2017 |250
657 |4/1/2017 |750
657 |6/1/2017 |900
657 |8/1/2017 |700
这个怎么样?(因为您发布了最少的信息,所以我保留在解释时创建自己的DDL的权利)
我认为,如果您包含一些示例数据和预期结果,以及您编写的不起作用的代码/查询,您会得到更多答案。
Accnt 123 would be 0 months
Accnt 987 would be 5 months
Accnt 657 would be 1 month
IF OBJECT_ID ('tempdb..#') IS NOT NULL
DROP TABLE #sales
GO
CREATE TABLE #sales
(Dte datetime
,amt int
,id int
,rownum int identity PRIMARY KEY
)
INSERT INTO #sales
SELECT '9/1/17',1200, 987
INSERT INTO #sales
SELECT '10/1/17',1100, 987
INSERT INTO #sales
SELECT '11/1/17',1000, 987
INSERT INTO #sales
SELECT '5/1/18',1900, 987
INSERT INTO #sales
SELECT '6/1/18',120, 987
INSERT INTO #sales
SELECT '4/1/17',100, 657
INSERT INTO #sales
SELECT '5/1/17',190, 657
INSERT INTO #sales
SELECT '7/1/17',12, 657
GO
SELECT MAX(DATEDIFF(dd,a.dte,b.dte)), a.id
FROM #sales a
INNER JOIN #sales b
ON a.rownum = b.rownum-1
AND a.id =b.id
GROUP BY a.id