Select
Count(ID) As Count,
CateName
From
表 A
Where Not Exists(Select ID From 表 Where ID = A.ID And IsNull(CateID, 0) > IsNull(A.CateID, 0))
Group By
CateName
create table t(ID int,Name varchar(20),Counts varchar(30))
go
insert into t
select 1,'linux',10 union all
select 1,'linux',30 union all
select 2,'Mac',40 union all
select 3,'unix',30 union all
select 3,'unix',30 union all
select 3,'unix',40 union all
select 3,'unix',60
go
select ID,Name,max(counts)as Counts from t group by ID,Name
go
select counts,CateID,A.CateName from
(
select count(EmployeeID) counts ,CateID
from
(
select EmployeeID,max(CateID)
from
(
SELECT HRM004Employee.EmployeeID, HRM004Employee.EmployeeName,
HRM005Category.CateName, HRM005Category.CateID
FROM HRM001Organization INNER JOIN
HRM003DeptEmployee ON
HRM001Organization.OrgID = HRM003DeptEmployee.OrgID INNER JOIN
HRM004Employee ON
HRM003DeptEmployee.EmployeeID = HRM004Employee.EmployeeID AND
HRM004Employee.DeleteFlg = '0' AND HRM004Employee.StatusFlag IN ('0', '1')
INNER JOIN
HRM002Department ON
HRM001Organization.OrgID = HRM002Department.OrgID AND
HRM003DeptEmployee.DeptID = HRM002Department.DeptID LEFT OUTER JOIN
HRM010StudyExperience ON
HRM010StudyExperience.EmployeeID = HRM004Employee.EmployeeID LEFT OUTER JOIN
HRM005Category ON HRM005Category.CateType = '9' AND
HRM005Category.CateID = HRM010StudyExperience.Educational
WHERE (HRM001Organization.ActiveFlg = '1')
) X
group by EmployeeID
) Y
group by CateID
) Z
left outer join HRM005Category A on A.CateID = Z.CateID
Select
Count(ID) As Count,
CateName
From
表 A
Where Not Exists(Select ID From 表 Where ID = A.ID And IsNull(CateID, 0) > IsNull(A.CateID, 0))
Group By
CateName
这个也不太好测试,因为哪个表A我也是费了10多行的sql语句查询出来的,所以无法直接A.ID这样使用,(能将查询出来的表重命名吗?)
表A实际上是这个语句查询出来的(
SELECT HRM004Employee.EmployeeID, HRM004Employee.EmployeeName,
HRM005Category.CateName, HRM005Category.CateID
FROM HRM001Organization INNER JOIN
HRM003DeptEmployee ON
HRM001Organization.OrgID = HRM003DeptEmployee.OrgID INNER JOIN
HRM004Employee ON
HRM003DeptEmployee.EmployeeID = HRM004Employee.EmployeeID AND
HRM004Employee.DeleteFlg = '0' AND HRM004Employee.StatusFlag IN ('0', '1')
INNER JOIN
HRM002Department ON
HRM001Organization.OrgID = HRM002Department.OrgID AND
HRM003DeptEmployee.DeptID = HRM002Department.DeptID LEFT OUTER JOIN
HRM010StudyExperience ON
HRM010StudyExperience.EmployeeID = HRM004Employee.EmployeeID LEFT OUTER JOIN
HRM005Category ON HRM005Category.CateType = '9' AND
HRM005Category.CateID = HRM010StudyExperience.Educational
WHERE (HRM001Organization.ActiveFlg = '1')
)