ÇósqlÓï¾ä
Date a b c d
2009-1 4 2 2 5
2009-2 4 2 4 0
2009-3 2 0 0 7
ÇóabcdÁÐµÄÆ½¾ùÊý£¬
µ«ÊÇΪ0Ôò²»¼ÆËãµÄƽ¾ùÊýÖУº ±ÈÈç˵dÁÐ £¨5+7£©/2 =6 ¹ýÂ˵ô0µÄÄÇÐÐ
½á¹ûÈçÏÂ
avg(a) avg(b) avg(c) avg(a)
5 2 3 6
ÄǵÚÒ»¸öÓ¦¸Ã²»ÊÇ5°É
SQL code:
create table tb(Date nvarchar(10),a int,b int,c int ,d int)
insert into tb select
'2009-1', 4, 2, 2, 5 union all select
'2009-2', 4, 2, 4, 0 union all select
'2009-3', 2, 0, 0, 7
select [avg(a)]=case when Sum(case a when 0 then 0 else 1 end)=0 then 0 else (sum(a)/Sum(case a when 0 then 0 else 1 end)) end
,[avg(b)]=case when Sum(case b when 0 then 0 else 1 end)=0 then 0 else (sum(b)/Sum(case b when 0 then 0 else 1 end)) end
,[avg(c)]=case when Sum(case c when 0 then 0 else 1 end)=0 then 0 else (sum(c)/Sum(case b when 0 then 0 else 1 end)) end
,[avg(d)]=case when Sum(case d when 0 then 0 else 1 end)=0 then 0 else (sum(d)/Sum(case d when 0 then 0 else 1 end)) end
from tb
/*avg(a) avg(b) avg(c) avg(d)
----------- ----------- ----------- -----------
3 2
Ïà¹ØÎÊ´ð£º
´ó¼ÒºÃ£¬ÇëÎÊÔÚ±íMÖÐÓÐ×ֶΣºa b c d e
ÎÒÏë²é³öÆäÖÐÂú×ãÏÂÃæÈÎÒâÒ»ÏîµÄÊý¾Ý£¬1.×Ö¶Îa µÄÖµ²»ÊÇ ¡®Êé»ò±Ê»ò±¾¡¯ÖÐÈÎÒ»£¬2.aΪÊéµÄʱºò×Ö¶Îb,cÊÇ¿Õ;3.µ±aֵΪ±ÊµÄʱºòdÊÇ¿Õ;4.µ±aΪ±¾µÄʱºòb,d,e¶¼ÊÇ¿Õ;5.È ......
±íÈçÏÂ
½ÌÊÒID ×ùλÊý ¿ªÊ¼Ê±¼ä ½áÊøÊ±¼ä 2009Äê1ÔÂ1ÈÕ 2009Äê1ÔÂ2ÈÕ 2009Äê1ÔÂ3ÈÕ
101 50 08£º00 08£º30 30 40 50
101 50 09£º00 ......
ÔÊý¾Ý
ÉÌÆ· Ô¼Û ´òÕÛ·½Ê½1 ÕÛ¿Û1 ´òÕÛ·½Ê½2 ÕÛ¿Û2
±Ê¼Ç±¾ 10000 NULL 0 NULL&nb ......
¸÷λ´óÏÀ¾ÈÃü°¡ £¡£¡
¸Õ×°ÁËSQL2000 sp3
ÏëÓÃJSPÁ¬½ÓÊý¾Ý¿âµ«ÊdzöÏÖÎÊÌâÁË
ÎÒÓõÄÊÇJDK6.0+tomcat5.0+SQL2000 SP3+JDBC sp3
ËüÏÔʾµÄÊÇ
javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver fo ......
±í TT
×Ö¶Î A1 A2 A3
1 B 2008/07/09
2 C & ......