在过去12个月中,最大几个月含有无活动



我有一个包含以下项目的数据集:

  1. 一个月 - 年
  2. 帐户nbr
  3. 收入总计

如果一个帐户在一个月内没有收入总计,则该帐户没有记录。

我想知道每个帐户 - 账户连续没有收入的最大数量是多少?

例如,如果帐户123在过去12个月中的每个月都有收入为0。

如果帐户987连续4个月有收入,则连续5个月没有收入,然后在剩下几个月内收入为5个。

如果帐户657每隔一个月进行一次活动,那么他们的数量为1,b/c 1是连续的最多#,没有活动。

预先感谢

样本数据

**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

Accnt 123 would be 0 months
Accnt 987 would be 5 months
Accnt 657 would be 1 month

怎么样?(因为您发布的信息最少,所以我保留在我解释时创建自己的DDL的权利)。
    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

最新更新