[SQL ] cte 递回

楼主: bernachom (Terry)   2016-02-21 10:30:27
数据库名称: sql server 2008 r2
数据库版本: 2008 r2
内容/问题描述:
请教一下,
我有一个table是长这个样子
useriD uID tDate startDate endDate seqNo
AAAA ZZ 2016-02-21 NULL NULL 1
BBBB ZZ 2016-02-25 NULL NULL 2
CCCC VV 2016-02-25 NULL NULL 3
我希望整理后最后的结果是
userID uID tDate startDate endDate seqNo
AAAA ZZ 2016-02-21 2016-02-21 2016-02-25 1
BBBB ZZ 2016-02-25 2016-02-25 NULL 2
CCCC VV 2016-02-25 2016-02-25 NULL 3
uID 、 userID、tDate 为key值
我要找出每一个uID的有效区间 (startDate, endDate)
如果uID只有一笔的时后,他就还没有结束 endDate 就会是null
如果uid有两笔以上的时后,次笔的tDate(产生uid时间),就会更新到目前这一笔的endDate
我用cte去跑,结果一直超出100笔
不知道是什么条件没有下好..
希望前辈能教导一下
然后我发烧了,好难过...唉,希望今天会好转..
[更新]
(今天什么事都做不了,烧得好厉害呀,唉...现在也还在咳)
刚才我用了简单的更新就做完了,我搞得太复杂了
楼主: bernachom (Terry)   2016-02-21 14:33:00
我是在想,如果要更新时间区间,在程式端做会不会比较好呢??CTE好像没有什么机会的样子,我看看XML行不行...

Links booklink

Contact Us: admin [ a t ] ucptt.com