2009-07-23 2 views
0

HI EMP_ID에 대한 COMMENTS 컬럼과 EMP_ID에 대한 COMMENTS 컬럼을 포함하는 또 다른 테이블 SHIFT가 있습니다. 주어진 날짜 범위에 대해 COMMENTS를 선택해야합니다. 테이블. 내가 SHIFT에 EMP_SCHED 테이블 7 EMP_IDs 2 EMPIDs이 예를 들어SQL 서버에서 두 테이블을 교차 결합하는 방법

는 .I 모든 EMPIDS 및 COMMNETNS 필요하고 단일 행에 두 테이블에서 공통 EMPID에 대한 의견을 배치

내가 대신 생각

먼저 가입 SHIFT에 다음 EMP_SCHED하지만이 출력은

NULL 33018 NULL Truck Delivery 
NULL 33029 NULL Order Beer/Wine 
NULL 33067 NULL Deli Shift Available 
NULL 33115 NULL Clean backroom 
NULL 34232 NULL ccccc 
34020 34020  kkkkkk 
34020 34020  looo 

을 보았다 여러 행

SELECT distinct E.[EMP_ID]as SCHED_EMP,S.EMP_ID as SHIFT_EMP, 
      E.[SCHED_COMMENT],S.COMMENTS  
    FROM [EMP_SCHED_COMMENT] E, SHIFT S 
    where e.emp_id =*s.emp_id 

을 반환 오전 나는 여기에 올바른 일을? 사용 또한, MY SQL 서버가 허용하지 않습니다 키워드 LFET의 권리는

(상태가 예상되는 상황에서 지정된 부울이 아닌 유형의 표현, 근처 'LEFT')

답변

2

처음 합류 뚜렷한를 얻을 수 ID 목록

SELECT DISTINCT EMP_ID 
FROM EMP_SCHED 
UNION 
SELECT DISTINCT EMP_ID 
FROM SHIFT 

다음 원래 테이블을 연결하십시오.

어떻게 LEFT JOINS을 사용할 수 있습니까?

이 TABLE1 CROSS는

.. 2005

크로스에 대한 SQL 서버 구문
DECLARE @Employee TABLE(
     EmpID INT, 
     Comment VARCHAR(MAX) 
) 

DECLARE @Shift TABLE(
     Emp_ID INT, 
     Comment VARCHAR(MAX) 
) 

INSERT INTO @Employee (EmpID,Comment) SELECT 1, 'Emp1' 
INSERT INTO @Employee (EmpID,Comment) SELECT 2, 'Emp2' 
INSERT INTO @Employee (EmpID,Comment) SELECT 3, 'Emp3' 

INSERT INTO @Shift (Emp_ID,Comment) SELECT 2, 'Shift2' 
INSERT INTO @Shift (Emp_ID,Comment) SELECT 3, 'Shift3' 
INSERT INTO @Shift (Emp_ID,Comment) SELECT 4, 'Shift4' 

SELECT * 
FROM (
      SELECT DISTINCT 
        EmpID 
      FROM @Employee 
      UNION 
      SELECT DISTINCT 
        Emp_ID 
      FROM @Shift 
     ) EmpIDs LEFT JOIN 
     @Employee e ON EmpIDs.EmpID = e.EmpID LEFT JOIN 
     @Shift s ON EmpIDs.EmpID = s.Emp_ID 
+0

필자는 열 이름이 양쪽 모두에 대해 difernet 인 경우 무엇을 사용 했는가? 내 첫 번째 테이블의 값을 선택하는 것만으로도 가능합니다. – GustyWind

1
SELECT EMP_SCHED.COMMENTS, SHIFT.COMMENTS 
FROM EMP_SCHED LEFT OUTER JOIN SHIFT ON 
EMP_SCHED.EMP_ID = SHIFT.EMP_ID 
WHERE 
[(YOUR DATE RANGE FILTER)] 

가입 SQL Server의 TABLE2를 조인 작품과 왼쪽 가리키고 왼쪽 외부 조인 조인 및 RIGHT OUTER JOIN은 오른쪽 바깥 쪽 가입입니다. LEFT 및/또는 RIGHT가 적절한 구문인지는 확실하지 않습니다.

+0

질문에서 교차 결합이 필요하지 않습니다. –

+0

크로스 조인을 사용해 보았지만 SQLSERVR2005가 기대하고 있기 때문에 하나는 작동하지 않았습니다. – GustyWind

관련 문제