高手门帮忙大型数据库SQL语句问题
SQL数据库中有一表TDATA,有字段AA,BB,CC,DD,EE,FF,GG,LH,LHSUM表中的记录有近1000万条,字段AA,BB,CC,DD,EE,FF,GG里面存储的是整型数字,从0-10000的数字,现在要做的是:
每行记录从AA,BB,CC,DD,EE,FF,GG这几个字段里面判断这几个字段里面的数字是否是连续的,比如AA=100,BB=101的话,那么BB、AA是属于连续的数字,现在希望通过SQL语句来判断这几个字段中是否存在连续的数字,会出现几次连续的数字:
例如1:
字段: AA BB CC DD EE FF GG
值: 101 102 103 104 105 106 107
那么,LH的值应该为7,表示最多有7个数字相连;LHSUM的值为1,表示出现了1段连续的数字。
例如2:
字段: AA BB CC DD EE FF GG
值: 101 102 103 211 212 213 214
那么,LH的值应该为4,表示最多有4个数字相连;LHSUM的值为2,表示出现了2段连续的数字。
例如3:
字段: AA BB CC DD EE FF GG
值: 101 102 104 105 212 213 215
那么,LH的值应该为2,表示最多有2个数字相连;LHSUM的值为3,表示出现了3段连续的数字。
备注:只要相邻的2个字段符合数字是递增1相连就表示为字段相连
如何通过SQL来实现?请高手指教!
------解决方案--------------------要不了1个小时。
一步步来(暂时只想到这个笨方法):
update TDATA set LH=7,LHSUM=1 where BB=AA+1 and CC=AA+2 and DD=AA+3 and EE=AA+4 and FF=AA+5 and GG=AA+6
update ....
还好只有7个字段,组合不算多。
我再想想有没有简单的方法。同时期待高手们出手。