• 统计历年数据 南京酷得软件


     1 -- =============================================
     2 -- Author:        sucsy
     3 -- Create date: 2011-7-6
     4 -- Description:    获取任意时间段平均降水量
     5 -- =============================================
     6 ALTER FUNCTION [dbo].[GetAnyTimeSectionPrecipitationAvg] 
     7 (    
     8     @startDate datetime,
     9     @endDate datetime,
    10     @Stations varchar(2000)
    11 )
    12 RETURNS @returnTable Table (区站号 nvarchar(10not null,
    13                             --站名 nvarchar(100) not null,
    14                             汇总值 decimal(18,3not null,
    15                             年度 int
    16 AS
    17 begin
    18 declare @tempTable Table (区站号 nvarchar(10not null,
    19                             --站名 nvarchar(100) not null,
    20                             汇总值 decimal(18,3not null,
    21                             统计日期 date)                    
    22 
    23 
    24 declare @deffYear int                                --年代数
    25 declare @deffMonth int                                --统计月数
    26 declare @deffDay int                                --统计日数
    27 declare @tempStartDate date                            --当前计算开始日期
    28 declare @tempEndDate date                            --当前计算结束日期
    29 declare @currentYear int                            --当前年份递增变量
    30 
    31 --设置初始递增年份
    32 set @currentYear = 0
    33 --设置统计年代数
    34 set @deffYear = YEAR(@endDate- YEAR(@startDate)
    35 set @deffDay = DAY(@endDate- DAY(@startDate)
    36 --设置单年统计月数
    37 if MONTH(@startDate)<=MONTH(@endDate)
    38     set @deffMonth = MONTH(@endDate- MONTH(@startDate)
    39 else
    40     begin
    41         set @deffMonth = MONTH(@endDate+ MONTH(@startDate- 12
    42         set @deffYear=@deffYear-1
    43     end
    44 
    45 --遍历统计年代    
    46 while @currentYear<=@deffYear
    47 begin         
    48     --设置当前计算开始日期
    49     set  @tempStartDate=dateadd(YYYY,@currentYear,CONVERT(DATETIME,@startDate)) 
    50     --设置当前计算结束日期                                                  
    51     set  @tempEndDate=dateadd(MM,@deffMonth,CONVERT(DATETIME,@tempStartDate))
    52     
    53     set @tempEndDate=dateadd(dd,@deffDay,CONVERT(DATETIME,@tempEndDate))
    54 
    55     insert into @returnTable                
    56     Select 区站号,SUM(汇总值)*0.1,YEAR(@tempStartDatefrom [降水历史资料库].dbo.降水日数据汇总表  where 
    57            年=YEAR(@tempStartDate)          
    58            and 汇总指标编码='R_Day'
    59            and  统计日期>=@tempStartDate 
    60            and 统计日期 <=@tempEndDate           
    61            and 汇总值<30000
    62            group by 区站号
    63        --设置当前年份递增变量
    64     set @currentYear = @currentYear    + 1                            
    65 end
    66 RETURN
    67 end

    南京酷得软件

    公司网站: http://www.codersoft.cn 专业开发: 气象软件、监狱网上购物系统、两法衔接平台
  • 相关阅读:
    Linux Shell脚本Ldd命令原理及使用方法
    没有判断好形势,哪怕再多的传感器说有问题,核心的那个几仪表就是在歌舞升平
    JVM
    leetcode第一刷_Count and Say
    html 前台通用表单
    BP神经网络算法学习
    flash的dragonbone插件导入cocos2d的注意事项
    445port入侵具体解释
    google域名邮箱申请 gmail域名邮箱申请(企业应用套件)指南
    SQL性能优化工具TKPROF
  • 原文地址:https://www.cnblogs.com/sucsy/p/2191820.html
Copyright © 2020-2023  润新知