try thisDECLARE @EmployeeName VARCHAR(MAX)DECLARE @TitleName VARCHAR(MAX)DECLARE @Filter INTSELECT @EmployeeName = 'Jhon', @TitleName = 'SQL DBA' SELECT @Filter = 1 -- Show ALl-- 2 -- Show Difference-- 3 -- Show DeficienciesSELECT E.Skill, E.Level AS 'EmpCompetency', CASE WHEN E.LevelNo < T.LevelNo THEN '<' WHEN E.LevelNo = T.LevelNo THEN '=' ELSE '>' END AS 'Condition', T.Level AS 'Required competency'FROM ( SELECT ES.Skill_Nbr, S.Name 'Skill', ES.Employee_Nbr, E.Name AS 'Emp', SL.Name 'Level', SL.Number 'LevelNo' FROM @Employee_skill ES INNER JOIN @Skill S ON S.NUmber = ES.Skill_Nbr INNER JOIN @Employee E ON E.Number = ES.Employee_Nbr INNER JOIN @Skill_level SL ON SL.Number = ES.supervisorrating WHERE E.Name = @EmployeeName ) EINNER JOIN ( SELECT TS.Skill_Nbr, S.Name 'Skill', TS.Title_nbr, T.Name AS 'Title', SL.Name 'Level', SL.Number 'LevelNo' FROM @Title_Skill TS INNER JOIN @Skill S ON S.NUmber = TS.Skill_Nbr INNER JOIN @Title T ON T.Number = TS.Title_nbr INNER JOIN @Skill_level SL ON SL.Number = TS.Skill_level_nbr WHERE T.Name = @TitleName ) T ON T.Skill_Nbr = E.Skill_NbrWHERE ( @Filter = 1 OR ( @Filter = 2 AND E.LevelNo <> T.LevelNo ) OR ( @Filter = 3 AND E.LevelNo < T.LevelNo ))
"There is only one difference between a dream and an aim. A dream requires soundless sleep to see, whereas an aim requires sleepless efforts to achieve..!!"