update tblname set 等级字段="A" where 3<(select count(*) from tblname2 where id>10 )
并且要判断ID的子ID的子ID >10and(子ID的子ID有4个) 某ID如上这样的子ID有三个
update tblname1 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)
不明白你的等级上升是什么意思,现在就当是上升到A吧; 看明的了一点点,呵呵;上边那个只要改一下就可以了;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)
只要主ID>10就行主要是判断 ID有几个一级ID(的子ID(二级)个数是4的)
UPDATE abc 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)
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)
>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)