Çë½ÌÒÔϽá¹ûÓÃSQLÔõÑùʵÏÖ£¿
ÔʼÊý¾ÝÈçÏ£º
Éú²úÄÜÁ¦£¨cap£© ¿ª¹¤ÈÕÆÚ£¨start£© Í깤ÈÕÆÚ(end) Éú²ú¹¤Ê±(hour)
8 2010-1-21 2010-1-25 20
8 2010-1-21 2010-1-26 25
ÒªµÃ³öÒÔÏÂÊý¾Ý
Éú²úÄÜÁ¦£¨cap£© Éú²úÈÕÆÚ Ã¿ÈÕÉú²ú¹¤Ê±(hour)
8 2010-1-21 8.17
8 2010-1-22 8.17
8 2010-1-23 8.17
8 2010-1-24 8.17
8 2010-1-25 8.17
8 2010-1-26 4.17
ÿÈÕÉú²ú¹¤Ê±µÄ¼ÆËã·½·¨Îª£ºµÚÒ»ÐеÄÿÈÕÆ½¾ù¹¤Ê±¼ÓÉϵڶþÐеÄÿÈÕÆ½¾ù¹¤Ê±£¬¼´
8.17=20/5+25/6 4.17=25/6
û¿´¶®
»Ø¸´ÄÚÈÝÌ«¶ÌÁË£¡
SQL code:
create table # (cap int, start datetime, [end] datetime, [hour] int);
insert into #
select 8, '2010-1-21', '2010-1-25', 20 union all
select 8, '2010-1-21','2010-1-26',25;
select cap, DATEADD(DD, v.[number], [start]) [date],
SUM(ROUND([hour]*1.0/(datediff(dd,#.[start],#.[end])+1),2)) [hour]
from master.dbo.spt_values v join #
on v.[number] <= datediff(dd,#.[start],#.[end])
where v.type = 'P'
group by cap, DATEADD
Ïà¹ØÎÊ´ð£º
ÇëÎÊһϣ¬ÍâÍøÁ½Ì¨SQLSERVERʵÀýÊý¾Ý´«Ê䣬ÓÐûÓвÉÓÃÊý¾ÝѹËõºÍ¼ÓÃÜ¡£Ñ¹Ëõ±ÈÊǶàÉÙ£¬¼ÓÃÜÊÇʲô¼ÓÃÜËã·¨£¿Ïà¹ØÎĵµÄÄÀï¿ÉÒÔÕÒµ½£¿Ð»Ð»
ÎÒÒ²ÏëÖªµÀ£¡¹Ø×¢´ËÌù£¡
¹Ø×¢¡«¡«
Êý¾Ý¿â´óÅ£¶¼ÄÄÈ¥Á˰¡£¿
......
СµÜ£¬×î½üҪתÐÐÈ¥×öoracle¿ª·¢ÁË£¬ÓÉÓÚ´óѧ±Ïҵʱ£¬×ßÁ˸öÍä·£¬ÏÖÔÚºÜСÐÄ£¬ÎÊÏ£¬×öPL/SQLÓÐûÓÐǰ;£¿£¿£¿
µ±È»ÎÒ˵µÄÕâ¸öǰ;ÊÇÖ¸ ÒÔºóÒªÌø²Û£¬Êг¡¶ÔÕâÑùµÄÈ˲ŵÄÐèÇóÁ¿´ó²»´ó£¿£¿
3q ÄÇ¿´À´»¹Ö»ÄÜÏȽӴ ......
±í
id bh
1 10
2 11
3 12
4 15
5 16
6 22
7 25
8 26
9 27
10 28
½«bh°´Á¬Ðø·Ö¶Î³öÀ´·µ»Ø×Ö·û´®£º
10~12£¬15~16£¬22£¬25~28
SQL code:
declare @t tabl ......
ÓÐÁ½¸ö»òÒÔÉϵÄÔ¶³ÌÊý¾Ý¿â£¬ÈçºÎÓÃASP¼ì²âÁ¬½ÓËٶȲ¢Á¬½Ó×î¿ìµÄMSSQLÊý¾Ý¿â£¿
ÓÐÕâÑùµÄASPº¯ÊýÂð£¿ÎÒGOOGLEÁËһϣ¬ÕÒ²»µ½¡£
PHP+MYSQLÏÂÓÐÕâÖÖÀý×Ó£º
PHP code:
Example:
$wgDBservers = array(
......
tab1 ×Ö¶Î:billdate,goodsid,incount,inmoney,outcount,outmoney,endprice,endcount,endamt
tab2 ×Ö¶Î:goodsid,goodskind£¨ÉÌÆ·ÀàÐÍ£©
tab3 ×Ö¶Î:goodskind£¨ÉÌÆ·ÀàÐÍ£©,kindname
½á¹û£º
µÃµ½ÉÌÆ·ÀàÐÍÔÚÒ»¶Îʱ¼ä ......