Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

SQL½â»ó

Create Table Projects
( workorder_id char(5) not null,
  step_nbr int not null Check(step_nbr between 0 AND 1000),
  step_status Char(1) NOT null
  Check( step_status in('C','W')),
primary key(workorder_id,step_nbr));

workorder_id step_nbr  step_status
AA100   0 C
AA100   1 W
AA100   2 W
AA200   0 W
AA200   1 W
AA300   0 C
AA300   1 C

ÒªµÃµ½step_nbr ÊÇ 0 ²¢ÇÒ step_status='C'µÄ workorder_id µ«ÊÇÕâ¸ö˳ÐòµÄËùÓÐÆäËüµÄ·ÖÖ§µÄstep_status='W'

select  workorder_id
from projects
group by workorder_id
having count(*)
=  COUNT(case when step_nbr=0 and step_status='c' then 1 else NULL end)
  + COUNT( case when step_nbr <>0 and step_status='w' then 1 else NULL end);

¶ÔÓÚ else NULL ÔõôÀí½â°¡  ÎÒÔËÐÐ Select Count(NULL)ÊDz»ÄÜͨ¹ýµÄ°¡ .!

ÊÇcase when ºóÃæµÄÅжϰ¡
Èç¹û step_nbr=0  and step_status='c' Ôò¼ÇÊýÒ»´Î ·ñÔònull
²»¹ý²»Àí½â²»else 0

±ÈÈçÕâÌõ:
AA200  0 W

COUNT(case when step_nbr=0 and step_status='c' then 1 else NULL end)
  + COUNT( case when step_nbr <>0 and step_status='w' then 1 else NULL end);
ÕâÁ½¸ö¶¼²»³ÉÁ¢°¡  ÄDz»ÊÇ Count(NULL)+Count(NULL)
{{----}


Ïà¹ØÎÊ´ð£º

Çë½ÌsqlÓï¾ä¡£ - Oracle / ¿ª·¢

ÎÒÓÐÒ»¸ö±í£¬½á¹¹ÊÇÕâÑù¡£
  ת³ö µ¥Î» תÈ뵥λ ±ÊÊý ½ð¶î
date(Ö÷) outid(Ö÷) inid(Ö÷) num amt
2009 1 2 1 500 Ϊ 1 µ¥Î» ÔÚ2009Ä ......

sql server - Java / Eclipse

Êý¾Ý¿âÒªÔõôѧ²Å²»»áÏԵóéÏó°¡£¿
Õâ¾ÍÒª¿´ÄãÊʺÏʲô·½·¨ÁË£¬Õâ¾ßÌå²»ºÃ˵µÄ.....

ÔõôÁË£¬ÄѵÀ´ó¼Ò¶¼²»»á£¬»¹ÊÇÕæµÄÌ«³éÏó´ó¼Ò²»ÖªµÀÔõô˵°¡

½áºÏÄã²Ù×÷Êý¾Ý¿âµÄÌå»áºÍÀí½â£¬Ó¦¸ÃЧ¹û»á¸üºÃ¡£·ñÔò£¬Ò ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ