ÇóÒ»sql¡¾Ð»Ð»¡¿ - MS-SQL Server / »ù´¡Àà
ÐèÇóÈçÏ£º
a±í:
p_id status
1 0
2 0
b±í
rec_id pid purchase_qty receive_qty flag
1 1 10 10 0
2 1 1000 1000 0
3 2 25 10 1
4 2 25 25 0
ÏëµÃµ½ÈçϵĽá¹û£º
1.Èç¹ûb±íÖеÄpurchase_qty=receive_qty,ÇÒb±íÖеÄpid¹ØÁªa±íÖеÄp_id,µ±a±íÖÐËùÓÐÔÚb±íÖеÄpid=1ÇÒpurchase_qtyÓëreceive_qtyÏàͬʱ£¬¸üÐÂa±íÖеÄstatusΪ1
2.Èç¹ûB±íÖеÄflagΪ1µÄ»°£¬±íʾÕâÌõ¼Ç¼ҲÍê³ÉÁË£¬²»ÐèÒª¿¼ÂÇpurchase_qty=receive_qtyÕâÑùµÄÌõ¼þ£¬Ò²½«a±íÖеÄstatus¸üÐÂΪ1
лл´ó¼ÒÀÖ
Õâô¿ì¾Í³ÁÁË£¬up
SQL code:
update @ta
set status=1
from @ta a,@tb b
where a.p_id=b.pid
and (purchase_qty=receive_qty or flag=1)
??
SQL code:
update a±í A set status=1 where
exists(select 1 from b±í where A.pid=pid and (purchase_qty=receive_qty or flag=1))
??
SQL code:
update a set status = case when
b.purchase_qty = b.receive_qty and b.pid = 1
Ïà¹ØÎÊ´ð£º
´ó¼Ò°ïæ¿´¿´Õâ2¸ösqlÓï¾äÄĸö²éѯµÄËٶȸü¿ìµã¡£Ð»Ð»°ïæ¡£±È½Ï׿±¡£ÔÚ×öÐÔÄܲâÊÔ¡£
select * from
±íA LEFT OUTER JOIN ±íB ON (±íA.id || ' ' =±íB.id) ,±íC , ±íD, ±íE
WhereÆäËûÌõ¼þ
select * ......
ÏÖÔÚÓÐÒ»ORACLEÖеÄSQLÓï¾ä£¬ÐèÒªÒÆÖ²µ½DB2ÖУ¬ÇëÎʸÃSQL¸ÄÈçºÎд
ORACLEÖУº
select floor(months_between(date1,date2)) from A
date1,date2·Ö±ðΪ±íÖеÄÁ½¸ö×Ö¶Î £¬¶¼ÎªÈÕÆÚÐÍ
DB2ÖÐÈçºÎʹÓÃÐ ......
ÎÒÒ»¸öÏîÄ¿£¬Óиö²åÈë²Ù×÷£¬¾ßÌåÊÇÕâÑùµÄ£º
ÎÒÓнø»õÐÅÏ¢±í¡£ÔÚ³ö»õʱѡÔñÏàÓ¦µÄ½ø»õÐÅÏ¢£¬ÊäÈëÊýÁ¿£¬Ñ¡Ôñ²¿Ãź󣬵㱣´æ°´Å¥£¬ÓÉÓÚÍøÂçÑÓʱ£¬µãÒ»ÏÂûÓз´Ó³£¬ÓÚÊÇÓû§¾ÍÓÖµãһϣ¬µ¼ÖÂÒ»´Î²åÈëÁËÁ½Ìõ¼Ç¼:
Àý£º
......
ÓÐÁ½¸öͬÑùµÄ±í½á¹¹
±í½á¹¹ÈçÏ£º
id£¨ÐòºÅ£© parentid £¨¸¸½áµãÐòºÅ£© name(½áµãÃû³Æ)
±í1 ¼Ç¼ 1 0 aaa
2 ......