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