SELECT * INTO TImpItemBaseComm FROM TItemBaseComm WHERE 1=0 ALTER TABLE TImpItemBaseComm DROP COLUMN FPerfMode ALTER TABLE TImpItemBaseComm DROP COLUMN FPerfValue ALTER TABLE TImpItemBaseComm DROP COLUMN FCostMode ALTER TABLE TImpItemBaseComm DROP COLUMN FCostValue ALTER TABLE TImpItemBaseComm ADD FEmpId BIGINT --导入项目提成 IF object_id('dbo.PImportBKEmpItemBaseCommOne','P') IS NOT NULL BEGIN DROP PROCEDURE dbo.PImportBKEmpItemBaseCommOne END GO CREATE PROCEDURE PImportBKEmpItemBaseCommOne ( @WorkType VARCHAR(20), @DispatchMode VARCHAR(20), @ModeField VARCHAR(20), @ValueField VARCHAR(20), @HasPayment BIT ) AS BEGIN --大工 点 业绩 DECLARE @Sql VARCHAR(8000) SELECT @Sql = ' INSERT #Comm (FId,FEmpId,FCompId,FItemId,FPayTypeId,FWorkType,FDispatchMode,FCommMode,FCommValue,FCompNo,FItemNo,FPayTypeNo) SELECT dbo.FNNewId() AS FId, FEmpId AS FEmpId, dbo.FNBKCompId(heb00c) AS FCompId,-- 公司别 FItemId AS FItemId, --项目代码 0 AS FPayTypeId, ' + @WorkType + ' AS FWorkType, ' + @DispatchMode + ' AS FDispatchMode, dbo.FNBKItemCommMode('+@ModeField+') AS FCommMode, ISNULL(' + @ValueField + ',0) AS FCommValue, heb00c AS FCompNo, heb02c AS FItemNo, ' + CASE WHEN @HasPayment = 1 THEN ' heb56c ' ELSE ' CAST(''*'' AS VARCHAR(20))' END + ' AS FPayTypeNo ' +' FROM {FDB}.hem02 WHERE LEN(heb00c) <= 5 AND FEmpId IS NOT NULL AND cast(FItemId as bigint) != 0 ' print @SQL EXEC PExecImportSQL @SQL END GO --导入项目提成 IF object_id('dbo.PImportBKEmpItemBaseComm','P') IS NOT NULL BEGIN DROP PROCEDURE dbo.PImportBKEmpItemBaseComm END GO CREATE PROCEDURE PImportBKEmpItemBaseComm AS BEGIN --drop table #Comm -- EXEC PExecImportSQL 'SELECT * FROM {FDB}.hem01 ' CREATE TABLE #Comm ( FId BIGINT not null, FCompId BIGINT not null, FEmpId BIGINT not null, FItemId BIGINT not null, FPayTypeId BIGINT not null, FWorkType BIGINT not null, FDispatchMode BIGINT not null, FCommMode INT not null, FCommValue Decimal(18,6) not null, FCompNo VARCHAR(5) NOT NULL, FItemNo VARCHAR(20) NOT NULL, FPayTypeNo VARCHAR(20) NOT NULL ) -- DROP TABLE #Comm SELECT * FROM #Comm EXEC PExecImportSQL 'DELETE {FDB}.hem02 WHERE heb02c not in (select gda01c from {FDB}.gdm01)' DECLARE @HasPayment BIT DECLARE @Sql NVARCHAR(4000) SELECT @Sql = N'SELECT @HasPayment = (SELECT TOP 1 1 FROM {FDB}.syscolumns WHERE name = ''heb56c'' AND id = (select id from {FDB}.sysobjects where name =''hem02'' and type = ''U''))' EXEC PBKBuildSQL @Sql,@Sql OUTPUT print @Sql exec sp_executesql @Sql--表示@sql中的语句包含了一个输出参数 ,N'@HasPayment BIT out' ,@HasPayment out --和调用存储过程差不多,指定输出参数值 SET @HasPayment = ISNULL(@HasPayment,0) print @HasPayment --大工 点 EXEC PImportBKEmpItemBaseCommOne 11001,10001,'heb03i','heb04f', @HasPayment --大工 轮 EXEC PImportBKEmpItemBaseCommOne 11001,10002,'heb09i ','heb10f',@HasPayment --中工 点 EXEC PImportBKEmpItemBaseCommOne 11002,10001,'heb05i','heb06f',@HasPayment --中工 轮 EXEC PImportBKEmpItemBaseCommOne 11002,10002,'heb11i','heb12f',@HasPayment --小工 点 EXEC PImportBKEmpItemBaseCommOne 11003,10001,'heb07i','heb08f',@HasPayment --小工 轮 EXEC PImportBKEmpItemBaseCommOne 11003,10002,'heb13i','heb14f',@HasPayment --四工 点 EXEC PImportBKEmpItemBaseCommOne 11004,10001,'heb21i','heb22f' ,@HasPayment --四工 轮 EXEC PImportBKEmpItemBaseCommOne 11004,10002,'heb23i','heb24f',@HasPayment -- EXEC PExecImportSQL 'DELETE {TDB}.TItemBaseComm' --EXEC PExecImportSQL 'SELECT * FROM #Comm' UPDATE A SET A.FPayTypeId = B.FId FROM #Comm AS A,TPayAccount AS B WHERE A.FPayTypeNo = B.FBKPayNo AND A.FPayTypeNo != '*' AND A.FPayTypeNo != '' DELETE #Comm WHERE FPayTypeNo != '*' AND FPayTypeId = 0 EXEC PExecImportSQL ' INSERT TImpItemBaseComm (FId,FEmpId,FCompId,FItemId,FPayTypeId,FWorkType,FDispatchMode,FCommMode,FCommValue) SELECT FId,FEmpId,FCompId,FItemId,FPayTypeId,FWorkType,FDispatchMode,FCommMode,FCommValue FROM #Comm AS A ' --select * from TItemBaseComm WHERE FCompId = 3472331387795668992 --select * from tcompany drop table #Comm UPDATE TItemCommSchemeMaster SET FAcum = 0 SELECT * FROM TItemCommSchemeMaster INSERT TItemCommSchemeMaster(FId,FCompId,FName,FAcum) SELECT A.FEmpId,A.FCompId,E.FName + '提成' ,1 FROM #Comm AS A,TEmployee AS E WHERE A.FEmpId = E.FId GROUP BY A.FEmpId,A.FCompId,E.FName + '提成' DELETE TItemCommSchemeDetail SELECT * FROM TItemCommSchemeDetail INSERT TItemCommSchemeDetail(FId,FMasterId,FParentId,FItemId,FPayTypeId,FWorkType,FDispatchMode,FCommMOde,FCommValue,FCalcMode) SELECT dbo.FNnewId(),FEmpId,0,FItemId,FPayTypeId,FWorkType,FDispatchMode,FCommMOde,FCommValue,0 FROM #Comm SELECT * FROM TemployeeCommScheme DELETE TemployeeCommScheme INSERT TemployeeCommScheme(FId,FEmpId,FCompId,FItemSchemeId,FGoodsSchemeId,FCardSaleSchemeId,FCourseSaleSchemeId) SELECT dbo.FNnewId(),A.FId ,1,A.FId,0,0,0 FROM TEmployee AS A SELECT * FROM TItemCommSchemeMaster WHERE FId = 9145434575807107128 SELECT * FROM TImpItemBaseComm DELETE TEmpPerfDetailDateCache# END GO