• 循环年所有的月分统计


    USE [CommunityApp]
    GO
    /****** Object:  StoredProcedure [dbo].[sp_count_OwnerInfo]    Script Date: 03/04/2016 11:34:46 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author:        <Author,,Name>
    -- Create date: <Create Date,,>
    -- Description:    <Description,,>
    -- =============================================
    ALTER PROCEDURE [dbo].[sp_count_OwnerInfo]  
     @CommunityIDs int--如果为0查出所有的,不为0则查指定小区
    AS
      declare @i int,
        @j int,
       @Allyear int,--年数
       @year  varchar(30),--年标
      @CommunityID int,
      @CommunityName nvarchar(50),
      @yearCount  int  ,
      @month1Count  int  ,
      @month2Count  int  ,
      @month3Count  int  ,
      @month4Count  int  ,
      @month5Count  int  ,
      @month6Count  int  ,
      @month7Count  int  ,
      @month8Count  int  ,
      @month9Count  int  ,
      @month10Count  int  ,
      @month11Count  int  ,
      @month12Count  int 
      
     DECLARE @tCommunity TABLE  
     (  
      CommunityID  int  ,
      CommunityName nvarchar(50)
      ,FlagID   TINYINT    
     ) 
     
     DECLARE @tcount TABLE  
     (  
      CommunityName nvarchar(50),
      years   int,
      yearCount  int  ,
      month1Count  int  ,
      month2Count  int  ,
      month3Count  int  ,
      month4Count  int  ,
      month5Count  int  ,
      month6Count  int  ,
      month7Count  int  ,
      month8Count  int  ,
      month9Count  int  ,
      month10Count  int  ,
      month11Count  int  ,
      month12Count  int 
     ) 
     
    BEGIN  
    
    IF @CommunityIDs=0
    begin
     insert @tCommunity  select CommunityID,CommunityName,0 from CommunityBase.dbo.CommunityList
     end
     else
     begin
      insert @tCommunity  select CommunityID,CommunityName,0 from CommunityBase.dbo.CommunityList where CommunityID=@CommunityIDs
     end
    
     
     SET @i=1  
     WHILE( @i>=1)  
     BEGIN  
        
      set @CommunityID=''  
       set @CommunityName=''  
      SELECT TOP 1 @CommunityID = CommunityID,@CommunityName = CommunityName FROM @tCommunity  WHERE flagID=0  
      SET @i=@@ROWCOUNT  
        
      IF @i<=0 GOTO Return_Lab  
         
     set @Allyear=year(getdate())-2015---第二次循环star
     
     SET @j= 0
     WHILE( @j<=@Allyear)  
      BEGIN
          SET @year=2015+@j
          
        SELECT @yearCount=count(*) FROM OwnerInfo WHERE datediff(year,CreateTime,@year+'-1-1')=0 and CommunityID= @CommunityID  --年
        SELECT @month1Count=count(*) FROM OwnerInfo WHERE datediff(month,CreateTime,@year+'-1-1')=0 and CommunityID= @CommunityID  --1月
        SELECT @month2Count=count(*) FROM OwnerInfo WHERE datediff(month,CreateTime,@year+'-2-1')=0 and CommunityID= @CommunityID  --2月
        SELECT @month3Count=count(*) FROM OwnerInfo WHERE datediff(month,CreateTime,@year+'-3-1')=0 and CommunityID= @CommunityID  --3月
        SELECT @month4Count=count(*) FROM OwnerInfo WHERE datediff(month,CreateTime,@year+'-4-1')=0 and CommunityID= @CommunityID  --4月
        SELECT @month5Count=count(*) FROM OwnerInfo WHERE datediff(month,CreateTime,@year+'-5-1')=0 and CommunityID= @CommunityID  --5月
        SELECT @month6Count=count(*) FROM OwnerInfo WHERE datediff(month,CreateTime,@year+'-6-1')=0 and CommunityID= @CommunityID  --6月
        SELECT @month7Count=count(*) FROM OwnerInfo WHERE datediff(month,CreateTime,@year+'-7-1')=0 and CommunityID= @CommunityID  --7月
        SELECT @month8Count=count(*) FROM OwnerInfo WHERE datediff(month,CreateTime,@year+'-8-1')=0 and CommunityID= @CommunityID  --8月
        SELECT @month9Count=count(*) FROM OwnerInfo WHERE datediff(month,CreateTime,@year+'-9-1')=0  and CommunityID= @CommunityID --9月
        SELECT @month10Count=count(*) FROM OwnerInfo WHERE datediff(month,CreateTime,@year+'-10-1')=0 and CommunityID= @CommunityID  --10月
        SELECT @month11Count=count(*) FROM OwnerInfo WHERE datediff(month,CreateTime,@year+'-11-1')=0 and CommunityID= @CommunityID  --11月
        SELECT @month12Count=count(*) FROM OwnerInfo WHERE datediff(month,CreateTime,@year+'-12-1')=0 and CommunityID= @CommunityID  --12月
    
       insert @tcount values(@CommunityName,@year,@yearCount,@month1Count,@month2Count,@month3Count,@month4Count,@month5Count,@month6Count,@month7Count,@month8Count,@month9Count,@month10Count,@month11Count,@month12Count) 
       SET @j+=1
       end ---第二次循环 end
       
       IF @@error=0   
          UPDATE @tCommunity SET flagID=1 WHERE CommunityID = @CommunityID
           
     Return_Lab:  
     END 
     select * from   @tcount
    End  
  • 相关阅读:
    Java入门3.2---线程池
    Java入门3.1---多线程
    打开ppt报"powerpoint无法加载mathtype加载项"错误
    LATEX排版总结
    casbin 权限系统
    Go netpoll I/O 多路复用构建原生网络模型之源码深度解析
    使用winsw包装服务将nginx包装为Windows服务
    Node.js 的模块系统
    一文读懂 babel7 的配置文件加载逻辑
    vue-cli是什么?和 webpack是什么关系?
  • 原文地址:https://www.cnblogs.com/lucoo/p/5241492.html
Copyright © 2020-2023  润新知