|
-- 本月薪酬汇总(部门/区县视图) -- EXEC [dbo].[up_Gather_Summary] '38890000', 2018, 10 ALTER PROC [dbo].[up_Gather_Summary]( @companyId NVARCHAR(40), @year INT, @month INT ) AS DECLARE @sql NVARCHAR(MAX)='' SET @sql += ' SELECT b.Unit_CountyID AS ''CountyId'' ,(CASE WHEN GROUPING(b.Unit_CountyID) = 0 THEN MAX(b.Unit_CountyName) ELSE ''总计'' END) AS ''UnitDisplayName'' ,(CASE WHEN GROUPING(b.Unit_CountyID) = 0 THEN ISNULL(MIN(g.DisplayOrder), 2147483646) ELSE 2147483647 END) AS ''DisplayOrder'' ' --拼接表头(奖金项) SELECT @sql += ' ,SUM(CASE WHEN d.BonusEntryID = ' + CAST(e.OID AS NVARCHAR(40)) + ' THEN d.[Amount] ELSE 0 END) AS '''+ MAX(e.Name) +'@@'+ CAST(e.OID AS NVARCHAR(40)) + '''' FROM dbo.[Grant] a WITH(NOLOCK) INNER JOIN [dbo].[GrantCluster] gc WITH(NOLOCK) ON gc.GrantId = a.Id AND gc.LogicDeleteFlag = 0 INNER JOIN [dbo].[GrantClusterRefBonusEntry] ref WITH(NOLOCK) ON ref.GrantClusterId = gc.Id INNER JOIN [dbo].[BonusEntry] e WITH(NOLOCK) ON e.OID = ref.BonusEntryID WHERE a.[LogicDeleteFlag] = 0 AND a.[Status] = 10 AND a.[Applicant_CompanyID] = @companyId AND a.[Token_Year] = @year AND a.[Token_Month] = @month GROUP BY e.OID ORDER BY e.OID SET @sql += ' ,ISNULL(SUM(d.Amount), 0) AS AmountSubtotal FROM dbo.[Grant] a WITH(NOLOCK) INNER JOIN dbo.GrantUnit b WITH(NOLOCK) ON b.GrantId = a.Id AND b.[LogicDeleteFlag] = 0 INNER JOIN dbo.GrantEmployee c WITH(NOLOCK) ON c.GrantUnitId = b.Id AND c.[LogicDeleteFlag] = 0 INNER JOIN dbo.GrantEmployeeSegment d WITH(NOLOCK) ON d.GrantEmployeeId = c.Id INNER JOIN dbo.GrantCluster e WITH(NOLOCK) ON e.Id = d.GrantClusterId AND e.[LogicDeleteFlag] = 0 INNER JOIN dbo.BonusEntry f WITH(NOLOCK) ON f.OID = d.BonusEntryID LEFT JOIN dbo.VBDepartment g WITH(NOLOCK) ON g.ID = b.Unit_CountyID WHERE a.[LogicDeleteFlag] = 0 AND a.[Status] = 10 AND a.[Applicant_CompanyID] = @companyId AND a.[Token_Year] = @year AND a.[Token_Month] = @month GROUP BY b.Unit_CountyID WITH ROLLUP ORDER BY DisplayOrder ' --PRINT(@sql) EXEC SP_EXECUTESQL @sql, N' @companyId NVARCHAR(40), @year INT, @month INT ' ,@companyId ,@year ,@month 关键字 GROUPING WITH ROLLUP |
|
|
沙发#
发布于:2019-08-27 11:36
|
|
|
|
板凳#
发布于:2019-08-27 10:46
doubleyong:这个存储过程写的6回到原帖我是 li yi ,哈哈。 |
|
|
地板#
发布于:2019-08-27 10:39
这个存储过程写的6
|
|
|
,哈哈。