UPDATE Menu SET Count=Temp2.RecordCount FROM Menu JOIN (SELECT Menu2.Numero,SUM(RecordCount) As RecordCount FROM (SELECT Menu.Numero,COUNT(*) AS RecordCount FROM Menu INNER JOIN MenuEntity ON Menu.Numero=MenuEntity.NoMenu INNER JOIN MenuPrivilege ON Menu.Numero=MenuPrivilege.NoMenu INNER JOIN MenuRole ON Menu.Numero=MenuRole.NoMenu INNER JOIN Member ON MenuEntity.NoEntity=Member.NoEntity AND MenuPrivilege.NoType=Member.NoType AND MenuRole.NoRole=Member.NoRole WHERE Menu.Numero NOT IN (SELECT Menu.Numero FROM MenuPrivilegeExceptionCase INNER JOIN Menu ON MenuPrivilegeExceptionCase.NoMenu=Menu.Numero WHERE MenuPrivilegeExceptionCase.NoMember=Member.Numero) GROUP BY Menu.Numero UNION SELECT Menu.Numero,COUNT(*) AS RecordCount FROM Menu INNER JOIN MenuPrivilegeExceptionCase ON Menu.Numero=MenuPrivilegeExceptionCase.NoMenu AND MenuPrivilegeExceptionCase.Enabled=1 INNER JOIN MenuEntity ON Menu.Numero=MenuEntity.NoMenu INNER JOIN Member ON MenuEntity.NoEntity=Member.NoEntity WHERE MenuPrivilegeExceptionCase.NoMember=Member.Numero GROUP BY Menu.Numero) Temp INNER JOIN Menu AS Menu2 ON Temp.Numero=Menu2.Numero GROUP BY Menu2.Numero) AS Temp2 ON Temp2.Numero=Menu.NumeroIf there is a way to shortening that out, you may let me know.