SQL code:
--²âÊÔÊý¾Ý---
if object_id('[t1]') is not null drop table [t1]
go
create table [t1]([ÐÕÃû] varchar(2),[ÊýÁ¿] int,[ÊýÁ¿2] int)
insert [t1]
select 'ÕÅ',10,2 union all
select 'Íõ',16,4 union all
select 'Àî',16,4 union all
select 'ÕÔ',20,3
if object_id('[t2]') is not null drop table [t2]
go
create table [t2]([ÐÕÃû] varchar(2),[×ÓÀà] int,[ʱ¼ä] datetime)
insert [t2]
select 'ÕÅ',null,'2010-2-4' union all
select 'Íõ',1,'2010-2-6' union all
select 'Íõ',1,'2010-2-7' union all
select 'ÕÔ',1,'2010-2-10'
---²éѯ---
select t1.ÐÕÃû,t1.ÊýÁ¿,ISNULL(t2.cnt,0) ×ÓÀà,t1.ÅÅÐÐ
from
(select *,ÅÅÐÐ=(select count(1)+1 from t1 where ÊýÁ¿>t.ÊýÁ¿) from t1 t) t1
left join
(select ÐÕÃû,sum(case when ×ÓÀà is not null then 1 else 0 end) as cnt
from t2
where convert(varchar(10),ʱ¼ä,120) between '2010-02-03' and '2010-02-11'
group by ÐÕÃû
) t2
on t1.ÐÕÃû=t2.ÐÕÃû
order by t1.ÅÅÐÐ,t1.ÐÕÃû
---½á¹û---
ÐÕÃû ºÏ¼Æ ×ÓÀà ÅÅÐÐ
---- ----------- ----------- -----------
ÕÔ 20 1 1
Àî 16 0 2
Íõ 16 2 2
ÕÅ 10 0 4
£¨ËùÓ°ÏìµÄÐÐÊýΪ 4 ÐУ©
ÏÖÔÚÊǰ´ÕÕÊýÁ¿ÅÅÐеġ£ÎÒÏëÊýÁ¿1+ÊýÁ¿2=ºÏ¼Æ£¬È»ºóÔÙ°´ÕպϼÆÅÅÐÐÏëÏÔʾ³É£º
ÐÕÃû ÊýÁ¿ ×ÓÀà ÅÅÐÐ
ÎÒÓжà¸ö±íA B C ½á¹¹ÊÇÒ»ÑùµÄ£¬¶¼ÓÐ2¸ö×Ö¶ÎnameºÍcontent,ÎÒÒªËÑË÷ËùÒÔ±íËùÓÐ×Ö¶ÎÖаüº¬¡°Öйú¡±µÄÄÚÈÝ Õâ¸öSQLÓï¾äÔõôд
ÈçºÎ½«¶à¸ö±íµÄ²éѯ½á¹ûÁ¬³ÉÒ»¸ö±í Õâ¸öSQLÓï¾äÔõôд ±íµÄ½á¹¹ÊÇÒ»ÑùµÄ
ÀýÈç£ ......
¿ÉÄÜÒòΪ¹¤×÷µÄÔÒò ½Ó´¥Êý¾Ý¿âÕâ¿é±È½ÏÉÙ£¬Ö®Ç°¶¼ÊÇ×ö³ÌÐòÕâ¿é£¬Êý¾Ý¿âÕâ¿é¶¼ÓÐרÃŵÄÈËÀ´×ö ·Ö¹¤¶¼ºÜÃ÷ϸ ËùÒÔ¶ÔÊý¾Ý¿âÕâÒ»¿éÍêÈ«²»Á˽⡣ǰ¶Îʱ¼ä È¥ÃæÊÔÁ˼¸¼Ò¹«Ë¾ ¼¸ºõ¶¼ÊÇÔÚÊý¾Ý¿âÕâ¿é¹ÒµôµÄ Á¬¸ö¼òµ¥µÄSQ ......