Çë½ÌÒ»¸öÅÅÃûµÄsqlÓï¾ä - MS-SQL Server / »ù´¡Àà
ÎÒÓÐÒ»¸ö±ía£¬ÀïÃæÓÐÈý¸ö×ֶΣ¬¹ÉƱid£¬³É±¾£¬ÊÕÒæ
ëÀûÂʵļÆË㹫ʽÊÇmao=£¨³É±¾-ÊÕÒæ£©/³É±¾
ÏÖÔÚÐèÒª°´ÕÕ2¸öÇø¼äµÃµ½¹ÉƱÅÅÃûµÄÃû´Î
0.1£¼mao¡Ü1 mao¡Ü0.1
Ò²¾ÍÊÇ˵¼ÙÈçëÀûÂÊ<=0.1µÄÓÐ500¸ö¹ÉƱ£¬Ã«ÀûÂÊÔÚ0.1ºÍ1Ö®¼äµÄÓÐ1500¸ö¹ÉƱ
ÄÇô¹ÉƱµÄÅÅÃûµÄÃû´Î·Ö±ðÊÇ1~500ºÍ1~1500
SQL code:
select * ,(select count(1) from
(select *,case when (³É±¾-ÊÕÒæ)*1.0/³É±¾<=0.1 then 0.1 else 1 end mao from [a]) bb
where mao=aa.mao and (³É±¾-ÊÕÒæ)*1.0/³É±¾<=(aa.³É±¾-aa.ÊÕÒæ)*1.0/aa.³É±¾
)
from (select *,case when (³É±¾-ÊÕÒæ)*1.0/³É±¾<=0.1 then 0.1 else 1 end mao from [a])aa
лл°¡£¬Èç¹ûÊǸü¶àÇø¼äÄØ£¿
A¡Ü0 0£¼A¡Ü0.2 0.2£¼A¡Ü0.4 0.4£¼A¡Ü1
±ÈÈçÕâÖÖ£¬ÄÇÄãµÄcase when ÀïÃæ²»¾Í²»¹»ËãÁË£¿
ÄÇÄã¾Ícase when Àï¼Ówhen°¡
Äܲ»ÄÜÓÃrankÕâÑùµÄº¯ÊýʵÏÖÄØ£¿
ÄÜÌṩ²âÊÔÊý¾ÝºÍÏëÒªµÄ½á¹ûÂ𣬿´ÃèÊö¿´µÄÔÎ
²âÊÔÊý¾Ý±ÈÈç
stockid A
1 0.05
2 0.09
3 0.07
4 0.17
5 0.12
7 -1
8 -2
Çø¼äÊÇA¡Ü0 0£¼A¡Ü0.1 0.1£¼A¡Ü0.2
ÒªµÃµ½¹ÉƱ´úÂë¶ÔÓ¦µÄAÖµÔÚÉÏÃæÇø¼äÖеÄÒ»¸öÅÅÃû£¨½µÐò»òÕßÉýÐò£©£¬¾ÍÊÇÀàËÆÕâÑùµÄ
ÉýÐòÅÅÃû
ÅÅÃû stockid A
1 7 -1
2 8 -2
1 1 0
Ïà¹ØÎÊ´ð£º
ÎÒÓÐÒ»¸ö±í£¬½á¹¹ÊÇÕâÑù¡£
ת³ö µ¥Î» תÈ뵥λ ±ÊÊý ½ð¶î
date(Ö÷) outid(Ö÷) inid(Ö÷) num amt
2009 1 2 1 500 Ϊ 1 µ¥Î» ÔÚ2009Ä ......
ÏÖÔÚÓÐÁ½ÕÅ±í£ºÎÄÕÂÖ÷±íA(articleId,articleTitle)£¬ÎÄÕÂÆÀÂÛ±íB(commentId,articleId,commentTitle)
ÏÖÔÚÎÒÏëʵÏÖÕâÑùµÄ¹¦ÄÜ£ºÁгöÎÄÕÂÁÐ±í£¬ÆäÖÐÿƪÎÄÕ±êÌâÏÂÃæÁгö´ËÎÄÕµÄǰ2¸öÎÄÕÂÆÀÂÛ£¬ÇëÎÊsqlÓï¾äÔõôд°¡ ......
ÏÖÔÚÓÐÒ»¸ö²¿Ãűídept£¨²¿ÃÅÃû³Æ£¬²¿Ãźš£¡££©ÓÐÒ»¸öÈËÔ±±íemp£¨ÐÕÃû£¬ÈËÔ±±àºÅ£¬Ö°Î»£¬Ð½×Ê£¬²¿ÃÅ£©
emp±íÖеÄÄÚÈÝÊÇÕâÑùµÄ£º
a 1 ¹¤³Ìʦ 3000 Èí¼þ²¿
b 2 ÆÕͨԱ¹¤ 2000 Ó²¼þ²¿
c 3 ¹¤³Ìʦ 4000 Ó²¼þ²¿
d ......
¸÷λºÃ£¬ÎÒ¸Õ°ÑÒ»¸öASPÍøÕ¾ÉèÖúÃÁË£¬Ò²ÄÜÕý³£·ÃÎÊ¡£µ«ÊÇÔÚÎÒ±¾»úÉϲ»ÄÜ´ò¿ªadmin\login.asp,ËùÒÔÎÞ·¨ÊµÏÖºǫ́¹ÜÀí¡££¨´íÎóÌáʾÎÞ·¨ÕÒµ½ÍøÒ³£¬´úÂë404£¬ÎҵIJÙ×÷ϵͳÊÇwin2000 server)
µ«ÊÇÆæ¹ÖµÄÊÇÔÚ¾ÖÓòÍøµÄÆäËû» ......