저는 블레이크라는 특정 직원 후에 얼마나 많은 직원이 고용되었는지 확인하는 방법을 알아 내려고 노력했습니다. 재귀 쿼리를 사용하고 싶습니다. 나는 아무 소용이 다음 쿼리를 시도 :SQL : 재귀 쿼리
나의 생각은 내가 무엇을 놓치고, 'e.Hiredate = b.Hiredate'를 통해 자신을 Employees 테이블을 조인했다?
저는 블레이크라는 특정 직원 후에 얼마나 많은 직원이 고용되었는지 확인하는 방법을 알아 내려고 노력했습니다. 재귀 쿼리를 사용하고 싶습니다. 나는 아무 소용이 다음 쿼리를 시도 :SQL : 재귀 쿼리
나의 생각은 내가 무엇을 놓치고, 'e.Hiredate = b.Hiredate'를 통해 자신을 Employees 테이블을 조인했다?
에있는 경우에도, 단 하나의 행이 반환되도록 할 필요가 귀하의 두 가지가 모두없는 경우 쿼리가 작동했습니다.
e.Hiredate = b.Hiredate
and e.Hiredate > b.Hiredate
어떻게 2 개의 값이 동시에 * 동일 * 같지 않을 수 있는지보십시오! 물론
Select E.Ename, E.Hiredate
From EMPLOYEES E, EMPLOYEES B
Where e.Hiredate > b.Hiredate
and b.Ename = 'blake';
, 당신은 상당히 기본적인 (101) 질문을하고 있기 때문에, 나는 다른 선택 다른 논리적 구멍이있는 단 하나의 직원이 '블레이크'(즉 Ename
는 고유 식별자입니다) 이름을 지정할 수 있습니다 가정합니다.
Select E.Ename, E.Hiredate
From EMPLOYEES E
JOIN EMPLOYEES B on e.Hiredate > b.Hiredate
WHERE b.Ename = 'blake';
네, 설명해 주셔서 감사합니다. – bbbbbbbbbb
신속하고 더러운 :
SELECT Ename, Hiredate
FROM employees
WHERE hiredate > (SELECT TOP 1 hiredate FROM employees WHERE ename = 'blake')
select e.*
from employees e
where hiredate > (select max(hiredate)
from employees
where ename = 'blake');
내부 쿼리의 max()
더 많은 직원들이 그 이름
'어디 e.Hiredate =
는 SQL에서 시작하고 있기 때문에, 나는 또한 당신이 ANSI 대신 같을 것이다 테이블 목록 (쉼표) 형태의 조인 사용 권합니다 b. 과 e.Hiredate> b.Hiredate'를 빈 상태로 만들면 빈 결과 집합이 생성됩니다. – wildplasser
수정. 내가 잃어버린 곳은 모든 직원의 고용 된 사람을 블레이크와 비교하는 방법입니다. – bbbbbbbbbb