SQL题

在这里插入图片描述
在这里插入图片描述

SELECT SR2.Ord, SR2.EmpID,SR2.EmpName,SR2.AbsID,SR2.AbsName,SR2.TypeA,SR2.TypeB,SR2.TypeT 
FROM
(
	SELECT  (@rank:=CASE 
				WHEN @last_score = SR.TypeT
					THEN @rank
				WHEN @last_score := SR.TypeT 
					THEN @rank+1
			END)  Ord, 
			SR.EmpID,SR.EmpName,SR.AbsID,SR.AbsName,SR.TypeA,SR.TypeB,SR.TypeT
	FROM (
		SELECT  T1.EmpID,T1.EmpName,T2.AbsID,T3.AbsName,
		MAX(
		CASE   T2.TypeID
			WHEN  'A' 
			THEN
				 T2.Score
			ELSE
				0
		END
		)  TypeA,
		MAX(
		CASE   T2 .TypeID
			WHEN  'B' THEN
				 T2 .Score
			ELSE
				0
		END
		)  TypeB,
		SUM(T2.Score)  TypeT  
		FROM Employee  T1
		LEFT JOIN Performance T2 ON T1.EmpID=T2.EmpID 
		LEFT JOIN Abs T3 ON T3.AbsID=T2.AbsID
		WHERE T2.AbsID='201601'
		GROUP BY T1.EmpID,T1.EmpName,T2.AbsID,T3.AbsName   
		ORDER BY SUM(T2.Score)  DESC   
	)  SR,(SELECT @rank:=0,@last_score:=NULL) u 
) SR2 
	WHERE SR2.Ord BETWEEN 6 and 10
SET @r=5;
SELECT  @r:=@r+1  Ord, SR.EmpID,SR.EmpName,SR.AbsID,SR.AbsName,SR.TypeA,SR.TypeB,SR.TypeT
FROM (
	SELECT  T1.EmpID,T1.EmpName,T2.AbsID,T3.AbsName,
	MAX(
	CASE   T2.TypeID
		WHEN  'A' 
		THEN
			 T2.Score
		ELSE
			0
	END
	)  TypeA,
	MAX(
	CASE   T2 .TypeID
		WHEN  'B' THEN
			 T2 .Score
		ELSE
			0
	END
	)  TypeB,
	SUM(T2.Score)  TypeT  
	FROM Employee  T1
	LEFT JOIN Performance T2 ON T1.EmpID=T2.EmpID 
	LEFT JOIN Abs T3 ON T3.AbsID=T2.AbsID
	WHERE T2.AbsID='201601'
	GROUP BY T1.EmpID,T1.EmpName,T2.AbsID,T3.AbsName   
	ORDER BY SUM(T2.Score)  DESC   
	LIMIT 5,9
)  SR
SELECT SR2.Ord, SR2.EmpID,SR2.EmpName,SR2.AbsID,SR2.AbsName,SR2.TypeA,SR2.TypeB,SR2.TypeT 
FROM	(
	SELECT  @rank := @rank + 1, 
			(@last_rank := CASE 
				WHEN @last_score = SR.TypeT
					THEN @last_rank
				WHEN @last_score := SR.TypeT
					THEN @rank
			END) Ord, 
			SR.EmpID,SR.EmpName,SR.AbsID,SR.AbsName,SR.TypeA,SR.TypeB,SR.TypeT
	FROM (
		SELECT  T1.EmpID,T1.EmpName,T2.AbsID,T3.AbsName,
		MAX(
		CASE   T2.TypeID
			WHEN  'A' 
			THEN
				 T2.Score
			ELSE
				0
		END
		)  TypeA,
		MAX(
		CASE   T2 .TypeID
			WHEN  'B' THEN
				 T2 .Score
			ELSE
				0
		END
		)  TypeB,
		SUM(T2.Score)  TypeT  
		FROM Employee  T1
		LEFT JOIN Performance T2 ON T1.EmpID=T2.EmpID 
		LEFT JOIN Abs T3 ON T3.AbsID=T2.AbsID
		WHERE T2.AbsID='201601'
		GROUP BY T1.EmpID,T1.EmpName,T2.AbsID,T3.AbsName   
		ORDER BY SUM(T2.Score)  DESC   
	)  SR,
	(SELECT @last_rank := 0,@last_score:=NULL,@rank:=0) u 
	) SR2 
	WHERE SR2.Ord BETWEEN 6 and 10
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值