Çë½ÌÒ»ÌõsqlÓï¾äÈçºÎд
ÎÒÓÐÒÔϱí½á¹¹
id status time
1 a 2010-2-21 08:13:23
2 b 2010-2-21 08:15:10
3 a 2010-2-21 08:19:29
4 b 2010-2-21 09:13:30
5 a 2010-2-21 10:13:49
ÎÒÏëµÃµ½ÒÔϽá¹û£¬ÒÔid ÉýÐòÀ´´¦Àí£¬×îÔçÒ»¸östatusΪbºÍaµÄtimeʱ¼ä²î£¬ÃëΪµ¥Î»£¬¼´id=2ºÍid=1µÄÄÇÁ½Ìõ¼Ç¼£¬È»ºóÈç´ËÀàÍÆÔÙ¼ÓÉÏÏÂÒ»¸östatus£ºbºÍa µÄtimeʱ¼ä²î£¨ÃëΪµ¥Î»£©£¬Ö±µ½×îºóÒ»¸östatus=aµÄ¼Ç¼µÄʱºò£¬Èç¹ûûÓÐÏÂÒ»ÌõstatusΪbµÄtime×÷²Î¿¼¼ÆËãʱ¼ä²î£¬ÄÇôֱ½ÓÈ¡µ±Ç°·þÎñÆ÷ʱ¼äÀ´»ñµÃʱ¼ä²î£¬×îºó»ñµÃʱ¼ä²îµÄ×ܺͣ¬ÄÇôÈçºÎʹÓÃÒ»ÌõsqlÓï¾ä»ñµÃ´Ë½á¹û£¿
SQL code:
---²âÊÔÊý¾Ý---
if object_id('[tb]') is not null drop table [tb]
go
create table [tb]([id] int,[status] varchar(1),[time] datetime)
insert [tb]
select 1,'a','2010-2-21 08:13:23' union all
select 2,'b','2010-2-21 08:15:10' union all
select 3,'a','2010-2-21 08:19:29' union all
select 4,'b','2010-2-21 09:13:30' union all
select 5,'a','2010-2-21 10:13:49'
---²éѯ---
select
sum(datediff(ss,a.[time],isnull(b.[time],getdate()))) as [ʱ¼ä²î×ܺÍ(Ãë)]
from
(select *,px=(select count(1) from tb where status='a' and [time]<t.[time]) from tb t where status='a') a
left join
(select *,px=(select count(1) from tb where status='b' and [time]<
Ïà¹ØÎÊ´ð£º
ÎÒÓжà¸ö±íA B C ½á¹¹ÊÇÒ»ÑùµÄ£¬¶¼ÓÐ2¸ö×Ö¶ÎnameºÍcontent,ÎÒÒªËÑË÷ËùÒÔ±íËùÓÐ×Ö¶ÎÖаüº¬¡°Öйú¡±µÄÄÚÈÝ Õâ¸öSQLÓï¾äÔõôд
ÈçºÎ½«¶à¸ö±íµÄ²éѯ½á¹ûÁ¬³ÉÒ»¸ö±í Õâ¸öSQLÓï¾äÔõôд ±íµÄ½á¹¹ÊÇÒ»ÑùµÄ
ÀýÈç£ ......
ÎÒÒ»¸öÏîÄ¿£¬Óиö²åÈë²Ù×÷£¬¾ßÌåÊÇÕâÑùµÄ£º
ÎÒÓнø»õÐÅÏ¢±í¡£ÔÚ³ö»õʱѡÔñÏàÓ¦µÄ½ø»õÐÅÏ¢£¬ÊäÈëÊýÁ¿£¬Ñ¡Ôñ²¿Ãź󣬵㱣´æ°´Å¥£¬ÓÉÓÚÍøÂçÑÓʱ£¬µãÒ»ÏÂûÓз´Ó³£¬ÓÚÊÇÓû§¾ÍÓÖµãһϣ¬µ¼ÖÂÒ»´Î²åÈëÁËÁ½Ìõ¼Ç¼:
Àý£º
......
select count(1) from FX_RETURNBOOKCHECKLIST fxreturnbo0_ where fxreturnbo0_.BOOKID='164 ' AND fxreturnbo0_.RETURNID='00025.S0000001'
ÉÏÃæÒ»¸ö¼òµ¥µÄSQL,Ö´ÐÐʱ¼ä2.6à ......