达到批量更新团伙数据效果,请进,谢谢了.

somepeople 2012-07-27 12:22:45
现在多个小团伙数据,现需要关联。
数据如下:
团伙名称 团伙成员
团伙1 张三
团伙1 李四
团伙2 李四
团伙2 王五
团伙3 王五
团伙3 刘六

由于团伙2一成员(李四)属于团伙1成员,则整个团伙2并入团伙1。
最后结果是
团伙1 张三
团伙1 李四
团伙1 王五
团伙1 刘六

我仅写出如下,但感觉应该达不到效果,请大家帮忙.谢谢了
UPDATE A
SET B.团伙几=A.团伙几
FROM YZFTEMP9_3 AS A,YZFTEMP9_3 AS B
WHERE CAST(RIGHT(B.团伙几,LEN(团伙几)-2) as int)>CAST(RIGHT(A.团伙几,LEN(团伙几)-2) as int)
AND B.CSR_IDN_SKY IN (SELECT CSR_IDN_SKY FROM YZFTEMP9_3 WHERE CSR_IDN_SKY=A.CSR_IDN_SKY)
...全文
74 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
somepeople 2012-10-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
思路:
用递归CTE实现最后的结果,写到临时表
删除原有数据
插入临时表数据到表
[/Quote]
可惜俺一点也不懂得递归。
昵称被占用了 2012-07-27
  • 打赏
  • 举报
回复
思路:
用递归CTE实现最后的结果,写到临时表
删除原有数据
插入临时表数据到表
somepeople 2012-07-27
  • 打赏
  • 举报
回复
醒来想到一个折衷的办法,在旁边多加一列团伙别名.
第一步:ALTER.....加团伙别名字段,忘记怎么写了
第二步:UPDATE A
SET B.团伙别名=A.团伙几
FROM YZFTEMP9_3 AS A,YZFTEMP9_3 AS B
WHERE CAST(RIGHT(B.团伙几,LEN(团伙几)-2) as int)>CAST(RIGHT(A.团伙几,LEN(团伙几)-2) as int)
AND B.CSR_IDN_SKY IN (SELECT CSR_IDN_SKY FROM YZFTEMP9_3 WHERE CSR_IDN_SKY=A.CSR_IDN_SKY)
第三步:UPDATE A
SET A.团伙几=B.团伙别名
FROM YZFTEMP9_3 AS A,YZFTEMP9_3 AS B
WHERE A.团伙几=B.团伙别名.......
上班了......欢迎不用这么复杂一句搞掂,或者继续俺的思路.

34,592

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧