sql ¹ØÓÚtreeµÄÎÊÌâ
Ê÷½á¹¹ÈçÏ£º
id employee_id username age Salary higher_id
1 E001 a 32 20000 E001
2 E002 a1 30 12000 E001
3 E003 a2 30 12000 E001
4 E004 aa1 25 4000 E002
5 E005 aa2 25 4000 E002
6 E006 aa3 32 4000 E003
ÈçºÎµÃ³öijԱ¹¤ÏÂÃæËùÓм¶ÁªÔ±¹¤µÄ×ÜÊý ±ÈÈ磺Ա¹¤ a ÏÂÃæÓÐ 2¸ö £¨a1,a2£©È»ºó a1 ÏÂÃæÓÖÓÐ2¸ö(aa1,aa2) £¬a2 ÏÂÃæÓÐÒ»¸ö£¨aa3£©ÄÇ×ܺ;ÍÊÇ 2+(2+1)=5¸öÁË¡£»»¾ä»°Ëµ¡£ÕÒÊ÷è¾µÄÒ¶×Ó½Úµã×ÜÊý£¬
ÎÒÕâÓÐÒ»¸ö£¬ÇóÒ¶×ÓÉî¶ÈµÄ´úÂë¡£ ÈçÏ£º
create function Getunderlyinglevel(@emploryee_id as varchar(50))
--»ñȡijԱ¹¤Ëù´¦Ö°Î»²ã´ÎµÄÉî¶È
returns int
as
begin
RETURN
(
case when exists (select * from employee_info where employee_id=@emploryee_id and higher_id=@emploryee_id)
then
1
else
1 + (select MAX(dbo.GetUnderlyingLevel(employee_id)) from employee_info where higher_id=@emploryee_id)
end
)
end
Èç¹ûÓÃͬÑùµÄµÝ¹é·½·¨ÔõôµÃ³öÒ¶×ÓµÄ×ÜÊý?
×Ô¼ºÏȶ¥¡£ÎÒÕâÓÐÒ»¸ö£¬ÇóÒ¶×ÓÉî¶ÈµÄ´úÂë¡£ ÈçÏ£º
SQL code:
create function Getunderlyinglevel(@emploryee_id as varchar(50))
--»ñȡijԱ¹¤Ëù´¦Ö°Î»²ã´ÎµÄÉî¶È
returns int
as
begin
RETURN
(
case when exists (select *
Ïà¹ØÎÊ´ð£º
ÇëÎÊһϣ¬ÍâÍøÁ½Ì¨SQLSERVERʵÀýÊý¾Ý´«Ê䣬ÓÐûÓвÉÓÃÊý¾ÝѹËõºÍ¼ÓÃÜ¡£Ñ¹Ëõ±ÈÊǶàÉÙ£¬¼ÓÃÜÊÇʲô¼ÓÃÜËã·¨£¿Ïà¹ØÎĵµÄÄÀï¿ÉÒÔÕÒµ½£¿Ð»Ð»
ÎÒÒ²ÏëÖªµÀ£¡¹Ø×¢´ËÌù£¡
¹Ø×¢¡«¡«
Êý¾Ý¿â´óÅ£¶¼ÄÄÈ¥Á˰¡£¿
......
sql 2005Êý¾Ý¿âÎÒÏëµÃµ½Ò»×Ö·û´®Îª:
sldkf|||sdeww
erkv|||rltdk
jemcl|||ligf
¾ÍÊÇ|||ºóÃæµÄ×Ö·ûÓÐʲôº¯ÊýÄܵõ½Âð£¿ÊÇÔÚsqlÓï¾äдµÄ£¬²»ÊÇÔÚÒ³ÃæÐ´µÄ£¬ÄÇλ¸ßÊÖÀ´Ö¸½ÌÏ£¬ÐÂÊÖ£¬Ð»Ð»
ÔÎ µ ......
³¡¾°ÈçÏ£º
¿Í»§°Ñ±¸·ÝºÃµÄÊý¾Ý¿â£¬·¢¸øÎÒ£¬ÎÒÔÚ±¾»ú»¹Ôºó£¬ÔËÐÐдºÃµÄ´æ´¢¹ý³Ì£¬±È½Ï¿ì£¬²¢ÇÒÔÚʵʩÄDZßÔËÐÐͬÑù±È½Ï¿ì¡£µ«Êǵ±ÊµÊ©ÔÚ¿Í»§ÄDZßÔËÐеÄʱºòËٶȾͷdz£µÄÂý£¬Ê±¼ä³¬³öÁ˳ÌÐòµÄʱ¼äÏÞÖÆ¡£Ô¶³ÌÔÚ¿Í»§ÄÇ ......
ÌâÄ¿£º°Ñ¡°SC¡±±íÖС°Ò¶Æ½¡±ÀÏʦ½ÌµÄ¿ÎµÄ³É¼¨¶¼¸ü¸ÄΪ´Ë¿Î³ÌµÄƽ¾ù³É¼¨£»
sqlÓï¾ä£º
update SC set score=(SELECT avg(SC_2.score)
from SC SC_2
WHERE S ......