根据数据是否出现在该行中来增加字段的值

时间:2013-12-11 03:33:37

标签: sql-server

我正在尝试在下方创建NEW_FIELD。第一次出现新标识符时,应将其设置为1(按日期排序)。如果日期字段中两行之间的天数大于90,那么NEW_FIELD应该增加1.有关如何为NEW_FIELD编码的提示吗?

NEW_FIELD   Identifier  Date    Prev Date   days_diff
1           1567    18/11/2005  NULL        NULL
2           1567    23/02/2008  18/11/2005  827
2           1567    29/02/2008  23/02/2008  6
2           1567    7/03/2008   29/02/2008  7
3           1567    27/01/2011  23/05/2008  979
3           1567    3/02/2011   27/01/2011  7
3           1567    10/02/2011  3/02/2011   7
1           845136  1/06/2012   NULL            NULL
1           845136  1/06/2012   1/06/2012   0
1           845136  1/06/2012   1/06/2012   0
1           845136  2/06/2012   1/06/2012   1
1           845136  3/06/2012   2/06/2012   1
2           845136  1/08/2013   3/06/2012   424
2           845136  2/08/2013   1/08/2013   1
2           845136  3/08/2013   2/08/2013   1
2           845136  4/08/2013   3/08/2013   1

1 个答案:

答案 0 :(得分:2)

尝试这......

IF((DATEDIFF(DW,'2013-11-12','2014-02-12'))>=90 )
    BEGIN
        UPDATE YOUR_TABLENAME SET NEW_FIELD=((select (max(NEW_FIELD)+1) from YOUR_TABLENAME ))
    END
ELSE
    UPDATE YOUR_TABLENAME SET NEW_FIELD=((select (max(NEW_FIELD)) from YOUR_TABLENAME ))