sql实现把某一列的值当成列名来实现(待整理完善)

Create PROCEDURE [dbo].[Pro_Number_FactoryA]
(
    @DATADate        nvarchar(10)

AS
BEGIN
    
    --存储当月天数日期的表
    if object_id('tempdb..#tempTableDate') is not null Begin
        drop table #tempTableDate
    End    
    create table #tempTableDate --创建临时表
    (
        StrsDate   varchar(12)
    )


    --判断是指定日期还是不区分日期
    if(@DATADate='0000')
    begin

        --获得当前月份的工厂    
        SELECT distinct FactoryCode FROM [KhaosReport].[dbo].[T_Khaos_Number_Factory] where DataTime like '%'+@DATADate+'%'
            
    end
    else
    begin

    --==============================================创建存储数据表  Start=============================================================
    
        --创建当月数据表
        if object_id('tempdb..#tempTableA') is not null Begin
            drop table #tempTableA
        End    
        --创建当月数据表
        if object_id('tempdb..#tempTableB') is not null Begin
            drop table #tempTableB
        End        
        --创建当月数据表
        if object_id('tempdb..#tempTableC') is not null Begin
            drop table #tempTableC
        End            

        create table #tempTableA --创建临时表
        (
            FactoryCode   varchar(8),
            FactoryName    varchar(80),
            FactoryType    varchar(3),
            Parent_Factory    varchar(8),
            TypeCode    varchar(80)
        )
    
        --通过工厂获得指定月份数据    
        Declare @DataTimeA varchar(10)
    
        --循环日期
        DECLARE cursor_nameDate CURSOR FOR --定义游标
    
            --SELECT distinct DataTime FROM [KhaosReport].[dbo].[T_Khaos_Number_Factory] where DataTime like '%2022-10%'
            SELECT distinct DataTime FROM [KhaosReport].[dbo].[T_Khaos_Number_Factory] where DataTime like '%'+@DATADate+'%'

        OPEN cursor_nameDate --打开游标
        FETCH NEXT FROM cursor_nameDate INTO  @DataTimeA--抓取下一行游标数据
        WHILE @@FETCH_STATUS = 0
            BEGIN
    
                --给临时表增加日期字段
                DECLARE @ColumnName NVARCHAR(100)
                SET @ColumnName ='[' +CONVERT(NVARCHAR(100),@DataTimeA) + ']' 

                --把日期存储到日期表中,后续会用到
                insert into #tempTableDate(StrsDate) values(@ColumnName)

                EXECUTE('ALTER TABLE #tempTableA ADD  ' + @ColumnName + ' NVARCHAR(100)')

                FETCH NEXT FROM cursor_nameDate INTO @DataTimeA
            END
        CLOSE cursor_nameDate --关闭游标
        DEALLOCATE cursor_nameDate --释放游标

    --==============================================创建存储数据表  End=============================================================
    --存储上一级数据结构表创建
    select * into #tempTableB from #tempTableA
    select * into #tempTableC from #tempTableA

    --==============================================数据存储操作  Start=============================================================

        --获得当前月份的工厂
        --insert into #tempTableA
        --SELECT distinct FactoryCode FROM [KhaosReport].[dbo].[T_Khaos_Number_Factory] where DataTime like '%'+@DATADate+'%'

        --通过工厂获得指定月份数据    
        Declare @FactoryCodeA varchar(8)

        --获得当前月份的工厂,循环单位
        DECLARE cursor_name CURSOR FOR --定义游标
    
    
            --SELECT distinct FactoryCode FROM [KhaosReport].[dbo].[T_Khaos_Number_Factory] where DataTime like '%2022-10%'

            SELECT distinct FactoryCode FROM [KhaosReport].[dbo].[T_Khaos_Number_Factory] where DataTime like '%'+@DATADate+'%'
    
        OPEN cursor_name --打开游标
        FETCH NEXT FROM cursor_name INTO  @FactoryCodeA--抓取下一行游标数据
        WHILE @@FETCH_STATUS = 0
            BEGIN

                Declare @FactoryCode    varchar(8)
                Declare @FactoryName    varchar(80)
                Declare @FactoryType    varchar(3)
                Declare @Parent_Factory    varchar(8)
                Declare @Numbers    int
                Declare @ManageNum    int
                Declare @TalnetNum    int
                Declare @TraineeNum    int
                Declare @EpibolyNum    int
                Declare @ShortNum    int
                Declare @UnPositionNum    int
                Declare @NimbleNum    int
                Declare @TemporarilyNum    int
                Declare @CreateTime    datetime
                Declare @DataTime    date
                Declare @ChanJia    int
                Declare @ChanQianJia    int
                Declare @ChangXiu    int
                Declare @DuanXiu    int
                Declare @GongShang    int
                Declare @DaiGang_ChanJianEnd    int
                Declare @Other    int
                Declare @Reserve    varchar(2)
                Declare @Reserve2    varchar(2)
                Declare @Reserve3    varchar(2)
                Declare @Reserve4    varchar(2)
                Declare @Reserve5    varchar(2)
                Declare @Reserve6    varchar(2)
            
                --把每个列以数值形式增加到表中
                insert into #tempTableA(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 FactoryCode,FactoryName,FactoryType,Parent_Factory,'Numbers' FROM [KhaosReport].[dbo].[T_Khaos_Number_Factory] where FactoryCode=@FactoryCodeA and DataTime like '%'+@DATADate+'%'
                insert into #tempTableA(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 FactoryCode,FactoryName,FactoryType,Parent_Factory,'ManageNum' FROM [KhaosReport].[dbo].[T_Khaos_Number_Factory] where FactoryCode=@FactoryCodeA and DataTime like '%'+@DATADate+'%'
                insert into #tempTableA(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 FactoryCode,FactoryName,FactoryType,Parent_Factory,'TalnetNum' FROM [KhaosReport].[dbo].[T_Khaos_Number_Factory] where FactoryCode=@FactoryCodeA and DataTime like '%'+@DATADate+'%'
                insert into #tempTableA(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 FactoryCode,FactoryName,FactoryType,Parent_Factory,'EpibolyNum' FROM [KhaosReport].[dbo].[T_Khaos_Number_Factory] where FactoryCode=@FactoryCodeA and DataTime like '%'+@DATADate+'%'
                insert into #tempTableA(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 FactoryCode,FactoryName,FactoryType,Parent_Factory,'ShortNum' FROM [KhaosReport].[dbo].[T_Khaos_Number_Factory] where FactoryCode=@FactoryCodeA and DataTime like '%'+@DATADate+'%'
                insert into #tempTableA(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 FactoryCode,FactoryName,FactoryType,Parent_Factory,'UnPositionNum' FROM [KhaosReport].[dbo].[T_Khaos_Number_Factory] where FactoryCode=@FactoryCodeA and DataTime like '%'+@DATADate+'%'
                insert into #tempTableA(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 FactoryCode,FactoryName,FactoryType,Parent_Factory,'NimbleNum' FROM [KhaosReport].[dbo].[T_Khaos_Number_Factory] where FactoryCode=@FactoryCodeA and DataTime like '%'+@DATADate+'%'
                insert into #tempTableA(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 FactoryCode,FactoryName,FactoryType,Parent_Factory,'TemporarilyNum' FROM [KhaosReport].[dbo].[T_Khaos_Number_Factory] where FactoryCode=@FactoryCodeA and DataTime like '%'+@DATADate+'%'
                insert into #tempTableA(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 FactoryCode,FactoryName,FactoryType,Parent_Factory,'ChanJia' FROM [KhaosReport].[dbo].[T_Khaos_Number_Factory] where FactoryCode=@FactoryCodeA and DataTime like '%'+@DATADate+'%'
                insert into #tempTableA(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 FactoryCode,FactoryName,FactoryType,Parent_Factory,'ChanQianJia' FROM [KhaosReport].[dbo].[T_Khaos_Number_Factory] where FactoryCode=@FactoryCodeA and DataTime like '%'+@DATADate+'%'
                insert into #tempTableA(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 FactoryCode,FactoryName,FactoryType,Parent_Factory,'ChangXiu' FROM [KhaosReport].[dbo].[T_Khaos_Number_Factory] where FactoryCode=@FactoryCodeA and DataTime like '%'+@DATADate+'%'
                insert into #tempTableA(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 FactoryCode,FactoryName,FactoryType,Parent_Factory,'DuanXiu' FROM [KhaosReport].[dbo].[T_Khaos_Number_Factory] where FactoryCode=@FactoryCodeA and DataTime like '%'+@DATADate+'%'
                insert into #tempTableA(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 FactoryCode,FactoryName,FactoryType,Parent_Factory,'GongShang' FROM [KhaosReport].[dbo].[T_Khaos_Number_Factory] where FactoryCode=@FactoryCodeA and DataTime like '%'+@DATADate+'%'
                insert into #tempTableA(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 FactoryCode,FactoryName,FactoryType,Parent_Factory,'DaiGang_ChanJianEnd' FROM [KhaosReport].[dbo].[T_Khaos_Number_Factory] where FactoryCode=@FactoryCodeA and DataTime like '%'+@DATADate+'%'
                insert into #tempTableA(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 FactoryCode,FactoryName,FactoryType,Parent_Factory,'Other' FROM [KhaosReport].[dbo].[T_Khaos_Number_Factory] where FactoryCode=@FactoryCodeA and DataTime like '%'+@DATADate+'%'
                insert into #tempTableA(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 FactoryCode,FactoryName,FactoryType,Parent_Factory,'Reserve' FROM [KhaosReport].[dbo].[T_Khaos_Number_Factory] where FactoryCode=@FactoryCodeA and DataTime like '%'+@DATADate+'%'
                insert into #tempTableA(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 FactoryCode,FactoryName,FactoryType,Parent_Factory,'Reserve2' FROM [KhaosReport].[dbo].[T_Khaos_Number_Factory] where FactoryCode=@FactoryCodeA and DataTime like '%'+@DATADate+'%'
                insert into #tempTableA(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 FactoryCode,FactoryName,FactoryType,Parent_Factory,'Reserve3' FROM [KhaosReport].[dbo].[T_Khaos_Number_Factory] where FactoryCode=@FactoryCodeA and DataTime like '%'+@DATADate+'%'
                insert into #tempTableA(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 FactoryCode,FactoryName,FactoryType,Parent_Factory,'Reserve4' FROM [KhaosReport].[dbo].[T_Khaos_Number_Factory] where FactoryCode=@FactoryCodeA and DataTime like '%'+@DATADate+'%'
                insert into #tempTableA(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 FactoryCode,FactoryName,FactoryType,Parent_Factory,'Reserve5' FROM [KhaosReport].[dbo].[T_Khaos_Number_Factory] where FactoryCode=@FactoryCodeA and DataTime like '%'+@DATADate+'%'
                insert into #tempTableA(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 FactoryCode,FactoryName,FactoryType,Parent_Factory,'Reserve6' FROM [KhaosReport].[dbo].[T_Khaos_Number_Factory] where FactoryCode=@FactoryCodeA and DataTime like '%'+@DATADate+'%'
                
                --循环单位的当月数据进行处理
                DECLARE cursor_nameA CURSOR FOR --定义游标
                
                    --SELECT * FROM [KhaosReport].[dbo].[T_Khaos_Number_Factory] where FactoryCode='50089129' and DataTime like '%2022-10%' order by DataTime

                    SELECT FactoryCode,FactoryName,FactoryType,Parent_Factory,Numbers,ManageNum,TalnetNum,TraineeNum,EpibolyNum,ShortNum,UnPositionNum,NimbleNum,TemporarilyNum,CreateTime,DataTime,ChanJia,ChanQianJia,ChangXiu,DuanXiu,GongShang,DaiGang_ChanJianEnd,Other,Reserve,Reserve2,Reserve3,Reserve4,Reserve5,Reserve6 FROM [KhaosReport].[dbo].[T_Khaos_Number_Factory] where FactoryCode=@FactoryCodeA and DataTime like '%'+@DATADate+'%' order by DataTime
    
                OPEN cursor_nameA --打开游标
                FETCH NEXT FROM cursor_nameA INTO  @FactoryCode,@FactoryName,@FactoryType,@Parent_Factory,@Numbers,@ManageNum,@TalnetNum,@TraineeNum,@EpibolyNum,@ShortNum,@UnPositionNum,@NimbleNum,@TemporarilyNum,@CreateTime,@DataTime,@ChanJia,@ChanQianJia,@ChangXiu,@DuanXiu,@GongShang,@DaiGang_ChanJianEnd,@Other,@Reserve,@Reserve2,@Reserve3,@Reserve4,@Reserve5,@Reserve6--抓取下一行游标数据
                WHILE @@FETCH_STATUS = 0
                    BEGIN

                        --拼接日期字段名称
                        DECLARE @ColumnDataTime NVARCHAR(100)
                        SET @ColumnDataTime ='[' +CONVERT(NVARCHAR(100),@DataTime) + ']' 

                        --给日期字段赋值
                        set @Numbers=ISNULL(@Numbers,0)
                        EXECUTE('update #tempTableA set ' + @ColumnDataTime + '='+ @Numbers +' where TypeCode=''Numbers'' and FactoryCode='+@FactoryCode )
                        set @ManageNum=ISNULL(@ManageNum,0)
                        EXECUTE('update #tempTableA set ' + @ColumnDataTime + '='+ @ManageNum +' where TypeCode=''ManageNum'' and FactoryCode='+@FactoryCode )
                        set @TalnetNum=ISNULL(@TalnetNum,0)
                        EXECUTE('update #tempTableA set ' + @ColumnDataTime + '='+ @TalnetNum +' where TypeCode=''TalnetNum'' and FactoryCode='+@FactoryCode )
                        set @TraineeNum=ISNULL(@TraineeNum,0)
                        EXECUTE('update #tempTableA set ' + @ColumnDataTime + '='+ @TraineeNum +' where TypeCode=''TraineeNum'' and FactoryCode='+@FactoryCode )
                        set @EpibolyNum=ISNULL(@EpibolyNum,0)
                        EXECUTE('update #tempTableA set ' + @ColumnDataTime + '='+ @EpibolyNum +' where TypeCode=''EpibolyNum'' and FactoryCode='+@FactoryCode )
                        set @ShortNum=ISNULL(@ShortNum,0)
                        EXECUTE('update #tempTableA set ' + @ColumnDataTime + '='+ @ShortNum +' where TypeCode=''ShortNum'' and FactoryCode='+@FactoryCode )
                        set @UnPositionNum=ISNULL(@UnPositionNum,0)
                        EXECUTE('update #tempTableA set ' + @ColumnDataTime + '='+ @UnPositionNum +' where TypeCode=''UnPositionNum'' and FactoryCode='+@FactoryCode )
                        set @NimbleNum=ISNULL(@NimbleNum,0)
                        EXECUTE('update #tempTableA set ' + @ColumnDataTime + '='+ @NimbleNum +' where TypeCode=''NimbleNum'' and FactoryCode='+@FactoryCode )
                        set @TemporarilyNum=ISNULL(@TemporarilyNum,0)
                        EXECUTE('update #tempTableA set ' + @ColumnDataTime + '='+ @TemporarilyNum +' where TypeCode=''TemporarilyNum'' and FactoryCode='+@FactoryCode )
                        set @ChanJia=ISNULL(@ChanJia,0)
                        EXECUTE('update #tempTableA set ' + @ColumnDataTime + '='+ @ChanJia +' where TypeCode=''ChanJia'' and FactoryCode='+@FactoryCode )
                        set @ChanQianJia=ISNULL(@ChanQianJia,0)
                        EXECUTE('update #tempTableA set ' + @ColumnDataTime + '='+ @ChanQianJia +' where TypeCode=''ChanQianJia'' and FactoryCode='+@FactoryCode )
                        set @ChangXiu=ISNULL(@ChangXiu,0)
                        EXECUTE('update #tempTableA set ' + @ColumnDataTime + '='+ @ChangXiu +' where TypeCode=''ChangXiu'' and FactoryCode='+@FactoryCode )
                        set @DuanXiu=ISNULL(@DuanXiu,0)
                        EXECUTE('update #tempTableA set ' + @ColumnDataTime + '='+ @DuanXiu +' where TypeCode=''DuanXiu'' and FactoryCode='+@FactoryCode )
                        set @GongShang=ISNULL(@GongShang,0)
                        EXECUTE('update #tempTableA set ' + @ColumnDataTime + '='+ @GongShang +' where TypeCode=''GongShang'' and FactoryCode='+@FactoryCode )
                        set @DaiGang_ChanJianEnd=ISNULL(@DaiGang_ChanJianEnd,0)
                        EXECUTE('update #tempTableA set ' + @ColumnDataTime + '='+ @DaiGang_ChanJianEnd +' where TypeCode=''DaiGang_ChanJianEnd'' and FactoryCode='+@FactoryCode )
                        set @Other=ISNULL(@Other,0)
                        EXECUTE('update #tempTableA set ' + @ColumnDataTime + '='+ @Other +' where TypeCode=''Other'' and FactoryCode='+@FactoryCode )
                        set @Reserve=ISNULL(@Reserve,0)
                        EXECUTE('update #tempTableA set ' + @ColumnDataTime + '='+ @Reserve +' where TypeCode=''Reserve'' and FactoryCode='+@FactoryCode )
                        set @Reserve2=ISNULL(@Reserve2,0)
                        EXECUTE('update #tempTableA set ' + @ColumnDataTime + '='+ @Reserve2 +' where TypeCode=''Reserve2'' and FactoryCode='+@FactoryCode )
                        set @Reserve3=ISNULL(@Reserve3,0)
                        EXECUTE('update #tempTableA set ' + @ColumnDataTime + '='+ @Reserve3 +' where TypeCode=''Reserve3'' and FactoryCode='+@FactoryCode )
                        set @Reserve4=ISNULL(@Reserve4,0)
                        EXECUTE('update #tempTableA set ' + @ColumnDataTime + '='+ @Reserve4 +' where TypeCode=''Reserve4'' and FactoryCode='+@FactoryCode )
                        set @Reserve5=ISNULL(@Reserve5,0)
                        EXECUTE('update #tempTableA set ' + @ColumnDataTime + '='+ @Reserve5 +' where TypeCode=''Reserve5'' and FactoryCode='+@FactoryCode )
                        set @Reserve6=ISNULL(@Reserve6,0)
                        EXECUTE('update #tempTableA set ' + @ColumnDataTime + '='+ @Reserve6 +' where TypeCode=''Reserve6'' and FactoryCode='+@FactoryCode )

                        FETCH NEXT FROM cursor_nameA INTO @FactoryCode,@FactoryName,@FactoryType,@Parent_Factory,@Numbers,@ManageNum,@TalnetNum,@TraineeNum,@EpibolyNum,@ShortNum,@UnPositionNum,@NimbleNum,@TemporarilyNum,@CreateTime,@DataTime,@ChanJia,@ChanQianJia,@ChangXiu,@DuanXiu,@GongShang,@DaiGang_ChanJianEnd,@Other,@Reserve,@Reserve2,@Reserve3,@Reserve4,@Reserve5,@Reserve6
                    END
                CLOSE cursor_nameA --关闭游标
                DEALLOCATE cursor_nameA --释放游标

                FETCH NEXT FROM cursor_name INTO @FactoryCodeA
            END
        CLOSE cursor_name --关闭游标
        DEALLOCATE cursor_name --释放游标


    --==============================================数据存储操作  End=============================================================

    --==============================================上一级数据存储操作 Start======================================================
        
        --通过工厂获得指定月份数据    
        Declare @Parent_FactoryA varchar(8)

        --获得当前月份的工厂,循环单位
        DECLARE cursor_nameParent CURSOR FOR --定义游标
    
            select distinct Parent_Factory from #tempTableA
    
        OPEN cursor_nameParent --打开游标
        FETCH NEXT FROM cursor_nameParent INTO  @Parent_FactoryA--抓取下一行游标数据
        WHILE @@FETCH_STATUS = 0
            BEGIN

                --把每个列以数值形式增加到表中
                insert into #tempTableB(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'Numbers' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryA
                insert into #tempTableB(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'ManageNum' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryA
                insert into #tempTableB(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'TalnetNum' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryA
                insert into #tempTableB(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'EpibolyNum' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryA
                insert into #tempTableB(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'ShortNum' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryA
                insert into #tempTableB(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'UnPositionNum' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryA
                insert into #tempTableB(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'NimbleNum' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryA
                insert into #tempTableB(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'TemporarilyNum' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryA
                insert into #tempTableB(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'ChanJia' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryA
                insert into #tempTableB(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'ChanQianJia' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryA
                insert into #tempTableB(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'ChangXiu' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryA
                insert into #tempTableB(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'DuanXiu' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryA
                insert into #tempTableB(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'GongShang' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryA
                insert into #tempTableB(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'DaiGang_ChanJianEnd' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryA
                insert into #tempTableB(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'Other' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryA
                insert into #tempTableB(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'Reserve' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryA
                insert into #tempTableB(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'Reserve2' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryA
                insert into #tempTableB(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'Reserve3' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryA
                insert into #tempTableB(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'Reserve4' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryA
                insert into #tempTableB(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'Reserve5' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryA
                insert into #tempTableB(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'Reserve6' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryA

                
                --通过工厂获得指定月份数据    
                Declare @StrsDate varchar(12)

                --获得当前月份的工厂,循环单位
                DECLARE cursor_nameParentA CURSOR FOR --定义游标
    
                    SELECT StrsDate FROM #tempTableDate
    
                OPEN cursor_nameParentA --打开游标
                FETCH NEXT FROM cursor_nameParentA INTO  @StrsDate--抓取下一行游标数据
                WHILE @@FETCH_STATUS = 0
                    BEGIN

                        --给日期字段赋值
                        --update #tempTableB set @StrsDate=(select sum(CAST( ISNULL(@StrsDate,0)as int)) from #tempTableA where Parent_Factory=@Parent_FactoryA and TypeCode='Numbers') where FactoryCode=@Parent_FactoryA and TypeCode='Numbers'
                        
                        EXECUTE('update #tempTableB set ' + @StrsDate + '=(select sum(CAST( ISNULL('+ @StrsDate +',0)as int)) from #tempTableA where Parent_Factory='+@Parent_FactoryA+' and TypeCode=''Numbers'') where TypeCode=''Numbers'' and FactoryCode='+@Parent_FactoryA )
                        EXECUTE('update #tempTableB set ' + @StrsDate + '=(select sum(CAST( ISNULL('+ @StrsDate +',0)as int)) from #tempTableA where Parent_Factory='+@Parent_FactoryA+' and TypeCode=''ManageNum'') where TypeCode=''ManageNum'' and FactoryCode='+@Parent_FactoryA )
                        EXECUTE('update #tempTableB set ' + @StrsDate + '=(select sum(CAST( ISNULL('+ @StrsDate +',0)as int)) from #tempTableA where Parent_Factory='+@Parent_FactoryA+' and TypeCode=''TalnetNum'') where TypeCode=''TalnetNum'' and FactoryCode='+@Parent_FactoryA )
                        EXECUTE('update #tempTableB set ' + @StrsDate + '=(select sum(CAST( ISNULL('+ @StrsDate +',0)as int)) from #tempTableA where Parent_Factory='+@Parent_FactoryA+' and TypeCode=''EpibolyNum'') where TypeCode=''EpibolyNum'' and FactoryCode='+@Parent_FactoryA )
                        EXECUTE('update #tempTableB set ' + @StrsDate + '=(select sum(CAST( ISNULL('+ @StrsDate +',0)as int)) from #tempTableA where Parent_Factory='+@Parent_FactoryA+' and TypeCode=''ShortNum'') where TypeCode=''ShortNum'' and FactoryCode='+@Parent_FactoryA )
                        EXECUTE('update #tempTableB set ' + @StrsDate + '=(select sum(CAST( ISNULL('+ @StrsDate +',0)as int)) from #tempTableA where Parent_Factory='+@Parent_FactoryA+' and TypeCode=''UnPositionNum'') where TypeCode=''UnPositionNum'' and FactoryCode='+@Parent_FactoryA )
                        EXECUTE('update #tempTableB set ' + @StrsDate + '=(select sum(CAST( ISNULL('+ @StrsDate +',0)as int)) from #tempTableA where Parent_Factory='+@Parent_FactoryA+' and TypeCode=''NimbleNum'') where TypeCode=''NimbleNum'' and FactoryCode='+@Parent_FactoryA )
                        EXECUTE('update #tempTableB set ' + @StrsDate + '=(select sum(CAST( ISNULL('+ @StrsDate +',0)as int)) from #tempTableA where Parent_Factory='+@Parent_FactoryA+' and TypeCode=''TemporarilyNum'') where TypeCode=''TemporarilyNum'' and FactoryCode='+@Parent_FactoryA )
                        EXECUTE('update #tempTableB set ' + @StrsDate + '=(select sum(CAST( ISNULL('+ @StrsDate +',0)as int)) from #tempTableA where Parent_Factory='+@Parent_FactoryA+' and TypeCode=''ChanJia'') where TypeCode=''ChanJia'' and FactoryCode='+@Parent_FactoryA )
                        EXECUTE('update #tempTableB set ' + @StrsDate + '=(select sum(CAST( ISNULL('+ @StrsDate +',0)as int)) from #tempTableA where Parent_Factory='+@Parent_FactoryA+' and TypeCode=''ChanQianJia'') where TypeCode=''ChanQianJia'' and FactoryCode='+@Parent_FactoryA )
                        EXECUTE('update #tempTableB set ' + @StrsDate + '=(select sum(CAST( ISNULL('+ @StrsDate +',0)as int)) from #tempTableA where Parent_Factory='+@Parent_FactoryA+' and TypeCode=''ChangXiu'') where TypeCode=''ChangXiu'' and FactoryCode='+@Parent_FactoryA )
                        EXECUTE('update #tempTableB set ' + @StrsDate + '=(select sum(CAST( ISNULL('+ @StrsDate +',0)as int)) from #tempTableA where Parent_Factory='+@Parent_FactoryA+' and TypeCode=''DuanXiu'') where TypeCode=''DuanXiu'' and FactoryCode='+@Parent_FactoryA )
                        EXECUTE('update #tempTableB set ' + @StrsDate + '=(select sum(CAST( ISNULL('+ @StrsDate +',0)as int)) from #tempTableA where Parent_Factory='+@Parent_FactoryA+' and TypeCode=''GongShang'') where TypeCode=''GongShang'' and FactoryCode='+@Parent_FactoryA )
                        EXECUTE('update #tempTableB set ' + @StrsDate + '=(select sum(CAST( ISNULL('+ @StrsDate +',0)as int)) from #tempTableA where Parent_Factory='+@Parent_FactoryA+' and TypeCode=''DaiGang_ChanJianEnd'') where TypeCode=''DaiGang_ChanJianEnd'' and FactoryCode='+@Parent_FactoryA )
                        EXECUTE('update #tempTableB set ' + @StrsDate + '=(select sum(CAST( ISNULL('+ @StrsDate +',0)as int)) from #tempTableA where Parent_Factory='+@Parent_FactoryA+' and TypeCode=''Other'') where TypeCode=''Other'' and FactoryCode='+@Parent_FactoryA )
                        EXECUTE('update #tempTableB set ' + @StrsDate + '=(select sum(CAST( ISNULL('+ @StrsDate +',0)as int)) from #tempTableA where Parent_Factory='+@Parent_FactoryA+' and TypeCode=''Reserve'') where TypeCode=''Reserve'' and FactoryCode='+@Parent_FactoryA )
                        EXECUTE('update #tempTableB set ' + @StrsDate + '=(select sum(CAST( ISNULL('+ @StrsDate +',0)as int)) from #tempTableA where Parent_Factory='+@Parent_FactoryA+' and TypeCode=''Reserve2'') where TypeCode=''Reserve2'' and FactoryCode='+@Parent_FactoryA )
                        EXECUTE('update #tempTableB set ' + @StrsDate + '=(select sum(CAST( ISNULL('+ @StrsDate +',0)as int)) from #tempTableA where Parent_Factory='+@Parent_FactoryA+' and TypeCode=''Reserve3'') where TypeCode=''Reserve3'' and FactoryCode='+@Parent_FactoryA )
                        EXECUTE('update #tempTableB set ' + @StrsDate + '=(select sum(CAST( ISNULL('+ @StrsDate +',0)as int)) from #tempTableA where Parent_Factory='+@Parent_FactoryA+' and TypeCode=''Reserve4'') where TypeCode=''Reserve4'' and FactoryCode='+@Parent_FactoryA )
                        EXECUTE('update #tempTableB set ' + @StrsDate + '=(select sum(CAST( ISNULL('+ @StrsDate +',0)as int)) from #tempTableA where Parent_Factory='+@Parent_FactoryA+' and TypeCode=''Reserve5'') where TypeCode=''Reserve5'' and FactoryCode='+@Parent_FactoryA )
                        EXECUTE('update #tempTableB set ' + @StrsDate + '=(select sum(CAST( ISNULL('+ @StrsDate +',0)as int)) from #tempTableA where Parent_Factory='+@Parent_FactoryA+' and TypeCode=''Reserve6'') where TypeCode=''Reserve6'' and FactoryCode='+@Parent_FactoryA )

                        FETCH NEXT FROM cursor_nameParentA INTO @StrsDate
                    END
                CLOSE cursor_nameParentA --关闭游标
                DEALLOCATE cursor_nameParentA --释放游标

                FETCH NEXT FROM cursor_nameParent INTO @Parent_FactoryA
            END
        CLOSE cursor_nameParent --关闭游标
        DEALLOCATE cursor_nameParent --释放游标

    --==============================================上一级数据存储操作  End=======================================================

    --==============================================顶级数据存储操作 Start======================================================

        --通过工厂获得指定月份数据    
        Declare @Parent_FactoryTop varchar(8)

        --获得当前月份的工厂,循环单位
        DECLARE cursor_nameParentTop CURSOR FOR --定义游标
    
            select distinct Parent_Factory from #tempTableB
    
        OPEN cursor_nameParentTop --打开游标
        FETCH NEXT FROM cursor_nameParentTop INTO  @Parent_FactoryTop--抓取下一行游标数据
        WHILE @@FETCH_STATUS = 0
            BEGIN
            
                --把每个列以数值形式增加到表中
                insert into #tempTableC(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'Numbers' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryTop
                insert into #tempTableC(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'ManageNum' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryTop
                insert into #tempTableC(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'TalnetNum' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryTop
                insert into #tempTableC(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'EpibolyNum' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryTop
                insert into #tempTableC(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'ShortNum' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryTop
                insert into #tempTableC(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'UnPositionNum' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryTop
                insert into #tempTableC(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'NimbleNum' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryTop
                insert into #tempTableC(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'TemporarilyNum' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryTop
                insert into #tempTableC(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'ChanJia' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryTop
                insert into #tempTableC(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'ChanQianJia' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryTop
                insert into #tempTableC(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'ChangXiu' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryTop
                insert into #tempTableC(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'DuanXiu' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryTop
                insert into #tempTableC(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'GongShang' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryTop
                insert into #tempTableC(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'DaiGang_ChanJianEnd' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryTop
                insert into #tempTableC(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'Other' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryTop
                insert into #tempTableC(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'Reserve' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryTop
                insert into #tempTableC(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'Reserve2' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryTop
                insert into #tempTableC(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'Reserve3' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryTop
                insert into #tempTableC(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'Reserve4' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryTop
                insert into #tempTableC(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'Reserve5' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryTop
                insert into #tempTableC(FactoryCode,FactoryName,FactoryType,Parent_Factory,TypeCode)
                SELECT top 1 org_code,org_name,org_type,parent_code,'Reserve6' FROM [KhaosReport].[dbo].[t_khaos_fac_subordinate_relation] where org_code=@Parent_FactoryTop
                
                --通过工厂获得指定月份数据    
                Declare @StrsDateTop varchar(12)

                --获得当前月份的工厂,循环单位
                DECLARE cursor_nameParentTopA CURSOR FOR --定义游标
    
                    SELECT StrsDate FROM #tempTableDate
    
                OPEN cursor_nameParentTopA --打开游标
                FETCH NEXT FROM cursor_nameParentTopA INTO  @StrsDateTop--抓取下一行游标数据
                WHILE @@FETCH_STATUS = 0
                    BEGIN

                        --给日期字段赋值
                        --update #tempTableB set @StrsDate=(select sum(CAST( ISNULL(@StrsDate,0)as int)) from #tempTableA where Parent_Factory=@Parent_FactoryA and TypeCode='Numbers') where FactoryCode=@Parent_FactoryA and TypeCode='Numbers'
                        
                        EXECUTE('update #tempTableC set ' + @StrsDateTop + '=(select sum(CAST( ISNULL('+ @StrsDateTop +',0)as int)) from #tempTableB where Parent_Factory='+@Parent_FactoryTop+' and TypeCode=''Numbers'') where TypeCode=''Numbers'' and FactoryCode='+@Parent_FactoryTop )
                        EXECUTE('update #tempTableC set ' + @StrsDateTop + '=(select sum(CAST( ISNULL('+ @StrsDateTop +',0)as int)) from #tempTableB where Parent_Factory='+@Parent_FactoryTop+' and TypeCode=''ManageNum'') where TypeCode=''ManageNum'' and FactoryCode='+@Parent_FactoryTop )
                        EXECUTE('update #tempTableC set ' + @StrsDateTop + '=(select sum(CAST( ISNULL('+ @StrsDateTop +',0)as int)) from #tempTableB where Parent_Factory='+@Parent_FactoryTop+' and TypeCode=''TalnetNum'') where TypeCode=''TalnetNum'' and FactoryCode='+@Parent_FactoryTop )
                        EXECUTE('update #tempTableC set ' + @StrsDateTop + '=(select sum(CAST( ISNULL('+ @StrsDateTop +',0)as int)) from #tempTableB where Parent_Factory='+@Parent_FactoryTop+' and TypeCode=''EpibolyNum'') where TypeCode=''EpibolyNum'' and FactoryCode='+@Parent_FactoryTop )
                        EXECUTE('update #tempTableC set ' + @StrsDateTop + '=(select sum(CAST( ISNULL('+ @StrsDateTop +',0)as int)) from #tempTableB where Parent_Factory='+@Parent_FactoryTop+' and TypeCode=''ShortNum'') where TypeCode=''ShortNum'' and FactoryCode='+@Parent_FactoryTop )
                        EXECUTE('update #tempTableC set ' + @StrsDateTop + '=(select sum(CAST( ISNULL('+ @StrsDateTop +',0)as int)) from #tempTableB where Parent_Factory='+@Parent_FactoryTop+' and TypeCode=''UnPositionNum'') where TypeCode=''UnPositionNum'' and FactoryCode='+@Parent_FactoryTop )
                        EXECUTE('update #tempTableC set ' + @StrsDateTop + '=(select sum(CAST( ISNULL('+ @StrsDateTop +',0)as int)) from #tempTableB where Parent_Factory='+@Parent_FactoryTop+' and TypeCode=''NimbleNum'') where TypeCode=''NimbleNum'' and FactoryCode='+@Parent_FactoryTop )
                        EXECUTE('update #tempTableC set ' + @StrsDateTop + '=(select sum(CAST( ISNULL('+ @StrsDateTop +',0)as int)) from #tempTableB where Parent_Factory='+@Parent_FactoryTop+' and TypeCode=''TemporarilyNum'') where TypeCode=''TemporarilyNum'' and FactoryCode='+@Parent_FactoryTop )
                        EXECUTE('update #tempTableC set ' + @StrsDateTop + '=(select sum(CAST( ISNULL('+ @StrsDateTop +',0)as int)) from #tempTableB where Parent_Factory='+@Parent_FactoryTop+' and TypeCode=''ChanJia'') where TypeCode=''ChanJia'' and FactoryCode='+@Parent_FactoryTop )
                        EXECUTE('update #tempTableC set ' + @StrsDateTop + '=(select sum(CAST( ISNULL('+ @StrsDateTop +',0)as int)) from #tempTableB where Parent_Factory='+@Parent_FactoryTop+' and TypeCode=''ChanQianJia'') where TypeCode=''ChanQianJia'' and FactoryCode='+@Parent_FactoryTop )
                        EXECUTE('update #tempTableC set ' + @StrsDateTop + '=(select sum(CAST( ISNULL('+ @StrsDateTop +',0)as int)) from #tempTableB where Parent_Factory='+@Parent_FactoryTop+' and TypeCode=''ChangXiu'') where TypeCode=''ChangXiu'' and FactoryCode='+@Parent_FactoryTop )
                        EXECUTE('update #tempTableC set ' + @StrsDateTop + '=(select sum(CAST( ISNULL('+ @StrsDateTop +',0)as int)) from #tempTableB where Parent_Factory='+@Parent_FactoryTop+' and TypeCode=''DuanXiu'') where TypeCode=''DuanXiu'' and FactoryCode='+@Parent_FactoryTop )
                        EXECUTE('update #tempTableC set ' + @StrsDateTop + '=(select sum(CAST( ISNULL('+ @StrsDateTop +',0)as int)) from #tempTableB where Parent_Factory='+@Parent_FactoryTop+' and TypeCode=''GongShang'') where TypeCode=''GongShang'' and FactoryCode='+@Parent_FactoryTop )
                        EXECUTE('update #tempTableC set ' + @StrsDateTop + '=(select sum(CAST( ISNULL('+ @StrsDateTop +',0)as int)) from #tempTableB where Parent_Factory='+@Parent_FactoryTop+' and TypeCode=''DaiGang_ChanJianEnd'') where TypeCode=''DaiGang_ChanJianEnd'' and FactoryCode='+@Parent_FactoryTop )
                        EXECUTE('update #tempTableC set ' + @StrsDateTop + '=(select sum(CAST( ISNULL('+ @StrsDateTop +',0)as int)) from #tempTableB where Parent_Factory='+@Parent_FactoryTop+' and TypeCode=''Other'') where TypeCode=''Other'' and FactoryCode='+@Parent_FactoryTop )
                        EXECUTE('update #tempTableC set ' + @StrsDateTop + '=(select sum(CAST( ISNULL('+ @StrsDateTop +',0)as int)) from #tempTableB where Parent_Factory='+@Parent_FactoryTop+' and TypeCode=''Reserve'') where TypeCode=''Reserve'' and FactoryCode='+@Parent_FactoryTop )
                        EXECUTE('update #tempTableC set ' + @StrsDateTop + '=(select sum(CAST( ISNULL('+ @StrsDateTop +',0)as int)) from #tempTableB where Parent_Factory='+@Parent_FactoryTop+' and TypeCode=''Reserve2'') where TypeCode=''Reserve2'' and FactoryCode='+@Parent_FactoryTop )
                        EXECUTE('update #tempTableC set ' + @StrsDateTop + '=(select sum(CAST( ISNULL('+ @StrsDateTop +',0)as int)) from #tempTableB where Parent_Factory='+@Parent_FactoryTop+' and TypeCode=''Reserve3'') where TypeCode=''Reserve3'' and FactoryCode='+@Parent_FactoryTop )
                        EXECUTE('update #tempTableC set ' + @StrsDateTop + '=(select sum(CAST( ISNULL('+ @StrsDateTop +',0)as int)) from #tempTableB where Parent_Factory='+@Parent_FactoryTop+' and TypeCode=''Reserve4'') where TypeCode=''Reserve4'' and FactoryCode='+@Parent_FactoryTop )
                        EXECUTE('update #tempTableC set ' + @StrsDateTop + '=(select sum(CAST( ISNULL('+ @StrsDateTop +',0)as int)) from #tempTableB where Parent_Factory='+@Parent_FactoryTop+' and TypeCode=''Reserve5'') where TypeCode=''Reserve5'' and FactoryCode='+@Parent_FactoryTop )
                        EXECUTE('update #tempTableC set ' + @StrsDateTop + '=(select sum(CAST( ISNULL('+ @StrsDateTop +',0)as int)) from #tempTableB where Parent_Factory='+@Parent_FactoryTop+' and TypeCode=''Reserve6'') where TypeCode=''Reserve6'' and FactoryCode='+@Parent_FactoryTop )

                        FETCH NEXT FROM cursor_nameParentTopA INTO @StrsDateTop
                    END
                CLOSE cursor_nameParentTopA --关闭游标
                DEALLOCATE cursor_nameParentTopA --释放游标
            
                FETCH NEXT FROM cursor_nameParentTop INTO @Parent_FactoryTop
            END
        CLOSE cursor_nameParentTop --关闭游标
        DEALLOCATE cursor_nameParentTop --释放游标


    --==============================================顶级数据存储操作  End=======================================================
            
    end
    
    --select * from #tempTableA
    --select * from #tempTableB

    --select * from #tempTableC
    
    --==============================================按级合并数据  Start=======================================================
    
    --通过工厂获得指定月份数据    
    Declare @Parent_FactorySummary varchar(8)

    --获得当前月份的工厂,循环单位
    DECLARE cursor_nameParentSummary CURSOR FOR --定义游标
    
        select distinct FactoryCode from #tempTableB order by FactoryCode
    
    OPEN cursor_nameParentSummary --打开游标
    FETCH NEXT FROM cursor_nameParentSummary INTO  @Parent_FactorySummary--抓取下一行游标数据
    WHILE @@FETCH_STATUS = 0
        BEGIN
            
            insert into #tempTableC
            select * from #tempTableB where FactoryCode=@Parent_FactorySummary
            
            insert into #tempTableC
            select * from #tempTableA where Parent_Factory=@Parent_FactorySummary order by FactoryCode

            
            FETCH NEXT FROM cursor_nameParentSummary INTO @Parent_FactorySummary
        END
    CLOSE cursor_nameParentSummary --关闭游标
    DEALLOCATE cursor_nameParentSummary --释放游标

    
    --==============================================按级合并数据  End=======================================================
    --获取最后数据
    select * from #tempTableC order by FactoryType,FactoryCode

    --工厂的去重集合
    select distinct FactoryCode,FactoryName,FactoryType,Parent_Factory from #tempTableC order by FactoryType,FactoryCode
    
    
    select * from [dbo].[T_Khaos_Number_Factory] where DataTime like '%'+@DATADate+'%'

END


GO


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值