ALTER PROCEDURE [dbo].[SumPoliceDate]
@strWhere VARCHAR(500)='',
@pwd VARCHAR(100)='admin123'
AS
BEGIN
-- routine body goes here, e.g.
-- SELECT 'Navicat for SQL Server'
DELETE FROM TempTable WHERE SumField='PoliceDate';
INSERT INTO TempTable SELECT
Name='5年以下'
,SumField='PoliceDate'
,ShuLiang = (SELECT Count(1) FROM [dbo].[HR_Person] WHERE IsLock=0 AND PoliceDate>= DATEADD(yy, DATEDIFF(yy,0,getdate())-5, 0)+@strWhere)
,Birthday1=DATEADD(yy, DATEDIFF(yy,0,getdate())-5, 0)
,Birthday2=DATEADD(yy, DATEDIFF(yy,0,getdate())-5, 0)
,SortCode='1',Per='';
INSERT INTO TempTable SELECT
Name='6年-10年'
,SumField='PoliceDate'
,ShuLiang = (SELECT Count(1) FROM [dbo].[HR_Person] WHERE IsLock=0 AND PoliceDate BETWEEN DATEADD(yy, DATEDIFF(yy,0,getdate())-10, 0) AND DATEADD(yy, DATEDIFF(yy,0,getdate())-5, 0)+@strWhere)
,Birthday1=DATEADD(yy, DATEDIFF(yy,0,getdate())-10, 0)
,Birthday2=DATEADD(yy, DATEDIFF(yy,0,getdate())-5, 0)
,SortCode='2',Per='';
INSERT INTO TempTable SELECT
Name='11年-15年'
,SumField='PoliceDate'
,ShuLiang = (SELECT Count(1) FROM [dbo].[HR_Person] WHERE IsLock=0 AND PoliceDate BETWEEN DATEADD(yy, DATEDIFF(yy,0,getdate())-15, 0) AND DATEADD(yy, DATEDIFF(yy,0,getdate())-10, 0)+@strWhere)
,Birthday1=DATEADD(yy, DATEDIFF(yy,0,getdate())-15, 0)
,Birthday2=DATEADD(yy, DATEDIFF(yy,0,getdate())-10, 0)
,SortCode='3',Per='';
INSERT INTO TempTable SELECT
Name='15年-20年'
,SumField='PoliceDate'
,ShuLiang = (SELECT Count(1) FROM [dbo].[HR_Person] WHERE IsLock=0 AND PoliceDate BETWEEN DATEADD(yy, DATEDIFF(yy,0,getdate())-20, 0) AND DATEADD(yy, DATEDIFF(yy,0,getdate())-15, 0)+@strWhere)
,Birthday1=DATEADD(yy, DATEDIFF(yy,0,getdate())-20, 0)
,Birthday2=DATEADD(yy, DATEDIFF(yy,0,getdate())-15, 0)
,SortCode='4',Per='';
INSERT INTO TempTable SELECT
Name='21年-25年'
,SumField='PoliceDate'
,ShuLiang = (SELECT Count(1) FROM [dbo].[HR_Person] WHERE IsLock=0 AND PoliceDate BETWEEN DATEADD(yy, DATEDIFF(yy,0,getdate())-25, 0) AND DATEADD(yy, DATEDIFF(yy,0,getdate())-20, 0)+@strWhere)
,Birthday1=DATEADD(yy, DATEDIFF(yy,0,getdate())-25, 0)
,Birthday2=DATEADD(yy, DATEDIFF(yy,0,getdate())-20, 0)
,SortCode='5',Per='';
INSERT INTO TempTable SELECT
Name='25年以上'
,SumField='PoliceDate'
,ShuLiang = (SELECT Count(1) FROM [dbo].[HR_Person] WHERE IsLock=0 AND PoliceDate< DATEADD(yy, DATEDIFF(yy,0,getdate())-25, 0)+@strWhere)
,Birthday1=DATEADD(yy, DATEDIFF(yy,0,getdate())-25, 0)
,Birthday2=DATEADD(yy, DATEDIFF(yy,0,getdate())-25, 0)
,SortCode='6',Per='';
SELECT * FROM TempTable WHERE SumField='PoliceDate';
END
年龄段统计
猜你喜欢
转载自www.cnblogs.com/chenmfly/p/8993024.html
今日推荐
周排行