急,求一存储过程 统计
表A    
             id      ,tradetime(交易日期),trademoney(交易金额)        
    我想取出这样的列 
          ID      ,lasttime(最后交易日期)   ,allmoney(总交易金额)      monthmoney(本月交易金额)   怎么写
------解决方案--------------------SELECT 
     ID, 
     MAX(tradetime)  as lasttime, 
     SUM(trademoney) as allmoney, 
     SUM(CASE DATEDIFF(MM,tradetime,GETDATE())  
            WHEN 0 THEN trademoney  
            ELSE 0  
         END) as monthmoney 
 FROM 
     表A  
 GROUP BY 
     ID
------解决方案--------------------Select ID,[最后交易日期]=max(交易日期),[总交易金额]=sum(交易金额), 
        [本月交易金额]=(Select Sum(交易金额) from 表名 Where 表名.ID=a.ID AND month(交易日期)=month(getdate()) Group BY ID) 
        From 表名 a Group By ID
------解决方案--------------------SELECT ID, 
 [最后交易日期]=MAX(tradetime) , 
 [总交易金额]=SUM(trademoney), 
 [本月交易金额]= sum(case when convert(varchar(7),tradetime,120)=convert(varchar(7),getdate(),120) 
 then  trademoney else 0 end) 
 FROM    table1  
 GROUP BY 
 ID
------解决方案--------------------动不动就proc 
 create table trad(id int identity(1,1) ,tradetime datetime,trademoney int) 
 insert into trad select  '2007-01-30 ',1000 
 union all select  '2007-1-30 ',1000 
 union all select  '2007-1-31 ',1000 
 union all select  '2007-1-30 ',1040 
 union all select  '2007-1-31 ',1200 
 union all select  '2007-1-31 ',1000 
 union all select  '2007-1-30 ',1900 
 union all select  '2007-1-31 ',1000 
 union all select  '2007-2-1 ',1000 
 union all select  '2007-2-12 ',1200 
 union all select  '2007-2-20 ',1000 
 union all select  '2007-2-10 ',1000 
 union all select  '2007-2-28 ',1000   
 select lasttime,(select sum(trademoney) from trad)allmoney,monthmoney  
 from(select max(tradetime) lasttime,sum(trademoney) 'monthmoney '  
 from trad group by Month(tradetime)) a
------解决方案--------------------select id,max交易日期 '最后交易日期 ',sum交易金额 '总交易金额 ', 
 select sum(b.交易金额) from 表 b where b.交易日期 between 月初 and 月末 as 本月交易金额 
 frm 表 Group By id