当前位置: 代码迷 >> Sql Server >> mssql 根据时间回计算总值
  详细解决方案

mssql 根据时间回计算总值

热度:538   发布时间:2016-04-24 09:05:20.0
mssql 根据时间来计算总值



时间从2011年某月某天一直到2017年某月某天

想写一个存储过程,当传入值是“月”时,数据按照月为单位展示出来
顺序显示2011年3月全月的Capacity值相加
如果按年展示,
就是2011年整年所有Capacity相加


年月日不确定,也可能其中某一年或者某一月或者某一天没数据


   
------解决思路----------------------


create proc proc_test @type Nvarchar(30)
 as begin
 set nocount on
   if @type='月'
    begin
    select convert(varchar(7),DT,111) as 年月,sum(Capacity) from tab
    -- where  convert(varchar(7),DT,111)='2011/03'
    group by convert(varchar(7),DT,111)
    end
   if @type='年'
   begin
     select year(DT) 年,sum(Capacity) from tab
    -- where year(DT)=2011
    group by year(DT)
  
   end 
 set nocount off
 end

demo
  相关解决方案