mssql sql¼ò»¯
SQL code:
declare @begin datetime --¿ªÊ¼Ê±¼ä
declare @end datetime --½áÊøʱ¼ä
declare @startIndex int --ÆðʼֵĬÈÏΪ8
declare @interval int --ʱ¶Î³¤
select @startIndex=8
select @interval=12
if @interval=6
begin
select stcd,convert(varchar(10),TM,20)'ÈÕÆÚ',sum(dyp)'ÈÕÓêÁ¿',
sum(case when @startIndex+@interval=14 then p8+p9+p10+p11+p12+p13 else 0 end) 'h14',
sum(case when @startIndex+@interval=20 then p14+p15+p16+p17+p18+p19 else 0 end) 'h20',
sum(case when @startIndex+@interval=26 then p20+p21+p22+p23+p0+p1 else 0 end) 'h02',
sum(case when @startIndex+@interval=32 then p2+p3+p4+p5+p6+p7 else 0 end) 'h08'
from st_rain_s where tm>'2009-3-01' and tm<'2010-4-2'
group by stcd,convert(varchar(10),TM,20)
end
else if @interval=8
begin
select stcd,convert(varchar(10),TM,20)'ÈÕÆÚ',sum(dyp)'ÈÕÓêÁ¿',
sum(case when @startIndex+@interval=16 then p8+p9+p10+p11+p12+p13+p14+p15 else 0 end) 'h16',
sum(case when @startIndex+@interval=20 then p16+p17+p18+p19+p20+p21+p22+p23 else 0 end) 'h24',
sum(case when @startIndex+@interval=26 then p0+p1+p2+p3+p4+p5+p6+p7 else 0 end) 'h08'
from st_rain_s where tm>'2009-3-01' and tm<'2010-4-2'
group by stcd,convert(varchar(10),TM,20)
end
else
begin
select stcd,convert(varchar(10),TM,20)'ÈÕÆÚ',sum(dyp)'ÈÕÓêÁ¿',
sum(case when @startIndex+@interval=16 then p8+p9+p10+p11+p12+p13+p14+p
Ïà¹ØÎÊ´ð£º
Ö´ÐеÄ˳Ðò£º
1£©Îļþä¯ÀÀ¿ò£¨Ñ¡ÔñÎļþʹÓã©
Ñ¡ÔñºÃÎļþºó
µã»÷Ò»¸öµ¼Èë°´Å¥µÄʱºò £¬°ÑÉÏÃæÉÏ´«¿òÀïµÄcsvÎļþÒÔÒ»¸öIDΪÎļþÃû£¬ÉÏ´«µ½**/**Îļþ¼ÐÏÂ
2£©¶ÁÈ¡Õâ¸öÎļþ¼ÐϵÄcsvµÄÎļþ£¬×ª»»³Ésql
3 ......
ÎÒÒ»¸öÏîÄ¿£¬Óиö²åÈë²Ù×÷£¬¾ßÌåÊÇÕâÑùµÄ£º
ÎÒÓнø»õÐÅÏ¢±í¡£ÔÚ³ö»õʱѡÔñÏàÓ¦µÄ½ø»õÐÅÏ¢£¬ÊäÈëÊýÁ¿£¬Ñ¡Ôñ²¿Ãź󣬵㱣´æ°´Å¥£¬ÓÉÓÚÍøÂçÑÓʱ£¬µãÒ»ÏÂûÓз´Ó³£¬ÓÚÊÇÓû§¾ÍÓÖµãһϣ¬µ¼ÖÂÒ»´Î²åÈëÁËÁ½Ìõ¼Ç¼:
Àý£º
......
ÎÒÓÐÒ»¸ö±í£¬½á¹¹ÊÇÕâÑù¡£
ת³ö µ¥Î» תÈ뵥λ ±ÊÊý ½ð¶î
date(Ö÷) outid(Ö÷) inid(Ö÷) num amt
2009 1 2 1 500 Ϊ 1 µ¥Î» ÔÚ2009Ä ......
update test set qty = qty - 1 where (location,sku,valid_date)
in (select location,sku,min(valid_date) from test
where location = 'chuwei' and item_code = '5678' group by location,sku)
ÒÔÉÏÓï ......