update tblname set 等级字段="A" where 3<(select count(*) from tblname2 where id>10 )
解决方案 »
- 100分求救,DELPHI调用.NET写的WEBSEVICE问题
- 如何 实现 动态 显示 HINT ???????????????????????????急!!!!!
- 请哪位大侠提供一个免费下载DELPHI第三方控件的网址啊!
- 各位兄台(姐姐),救命啊!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 求助!
- 懂得注册表、热心的高手请帮忙!!(dll注册问题)
- TFastDIB的问题,分不够可以再加
- 山寨锅升级解压密码
- 夸克兄请进来
- DIOCP开源项目-高效稳定的服务端解决方案(DIOCP + 无锁队列 + ZermMQ + QWorkers) 出炉了
- 谈谈你在CSDN里的得与失!
- 一个游戏问题
>10and(子ID的子ID有4个)
某ID如上这样的子ID有三个
set 等级字段='A'
where id > 10
and subid in (Select subid from tablename2
Group by subid
Having Count(subid) = 3)
把((有三个(值>10的子子ID))的记录)的"等级"设为A.
UPDATE abc
SET 等级 = 'A'
WHERE (3 <=
(SELECT COUNT(*)
FROM abc abc1
WHERE 值 > 10 AND 父编号 IN
(SELECT 编号
FROM abc abc2
WHERE 父编号 = abc.编号)))
我自己也看不懂了这样吧,详细点说,树形结构
ID 父ID 值 等级 百分数等级有三种 a b c
举个特例:ID=2,如果值大于10,并且搜索父ID=2的所有记录,在这些记录(每一个父ID=2的子树)里再判断,看他们的子树是否有大于4个的,这样就判断出ID=2的节点有多少子树成活的。即:每个子树下如果有4个孙子树,则子树成活,如有3个这样的子树则,而且值大于10,则该树成活,等级上升 ,百分数+20
我的理解是:ID(主)的子ID(一级)的子ID(二级)的值> 10
并且子ID(一级)的子ID(二级)有四个
如果符合上述条件的ID(主)的子ID(一级)的个数有三个则更新
是这样吗?
update tblname
set 等级字段='A'
where 子ID(二级) > 10
and 主ID in (Select 主ID from tablename
Group by 主ID
Having Count(ID(一级)) = 3)
and 子ID(一级) in (Select 子ID(一级) from tablename
Group by 子ID(一级)
Having Count(子ID(二级)) = 4)
看明的了一点点,呵呵;上边那个只要改一下就可以了;update tblname
set 等级字段='A', 百分数 = 百分数 + 0.2
where 子ID(二级) > 10
and 主ID in (Select 主ID from tablename
Group by 主ID
Having Count(ID(一级)) >= 3)
or 子ID(一级) in (Select 子ID(一级) from tablename
Group by 子ID(一级)
Having Count(子ID(二级)) >= 4)
SET 等级 = 'A'
WHERE (ID IN
(SELECT 父ID
FROM abc
WHERE ID IN
(SELECT 父ID
FROM abc
GROUP BY 父ID
HAVING COUNT(*) >= 4)
GROUP BY 父ID
HAVING COUNT(*) >= 3)) AND (值 > 10)
如果子ID也必须值>10:
UPDATE abc
SET 等级 = 'A'
WHERE (ID IN
(SELECT 父ID
FROM abc
WHERE 值 > 10 AND ID IN
(SELECT 父ID
FROM abc
GROUP BY 父ID
HAVING COUNT(*) >= 4)
GROUP BY 父ID
HAVING COUNT(*) >= 3)) AND (值 > 10)
SET 等级 = 'A'
WHERE (ID IN
(SELECT 父ID
FROM abc
WHERE 值 > 10 AND ID IN
(SELECT 父ID
FROM abc
GROUP BY 父ID
HAVING COUNT(*) >= 4)
GROUP BY 父ID
HAVING COUNT(*) >= 3)) AND (值 > 10)