0

다른 기준 테이블여러 테이블의 데이터를 연결하는 방법은 무엇입니까?

부서 테이블

 
╔═══════════╦════════════════╗ 
║ deptID ║ DeptName ║ 
╠═══════════╬════════════════╣ 
║ 1  ║  abc  ║ 
║ 2  ║  def  ║  
║ 3  ║  ghi  ║ 
╚═══════════╩════════════════╝ 

인 다음 I 많은 관계를 많이 갖는 2 개 테이블을 동적으로 별도의 테이블에 다수의 관계에 다수로 증가

 
╔════════╦════════════════════════╗ 
║ id ║  criteria   ║ 
╠════════╬════════════════════════╣ 
║ 1 ║ number of Employees ║ 
║ 2 ║ status    ║ 
║ 3 ║ nature of products ║ 
║ . ║ ---     ║ 
║ . ║ ---     ║ 
║ . ║ ---     ║ 
║ . ║ ---     ║ 
║ . ║ ---     ║ 
║ . ║ ---     ║ 
║ . ║ ---     ║ 
╚════════╩════════════════════════╝ 

다음과 같이 각 부서에 대해 각 기준에 값을 부여하십시오.

 
╔════════╦══════╦═════════════════════╗ 
║ DeptID ║ CrID ║  value  ║ 
╠════════╬══════╬═════════════════════╣ 
║ 1  ║ 1 ║ 20     ║ 
║ 1  ║ 2 ║ currently active ║ 
║ 1  ║ 3 ║ mechanical   ║ 
║ 1  ║ . ║ .....    ║ 
║ 1  ║ . ║ .....    ║ 
║ 1  ║ . ║ .....    ║ 
║ 2  ║ 1 ║ 40     ║ 
║ 2  ║ 2 ║ paused for transfer ║ 
║ 2  ║ 3 ║ software   ║ 
║ 2  ║ . ║ .....    ║ 
║ 2  ║ . ║ .....    ║ 
║ 2  ║ . ║ .....    ║ 
║ 3  ║ 1 ║ 50     ║ 
║ 3  ║ 2 ║ heavy duty   ║ 
║ 3  ║ 3 ║ support    ║ 
║ 3  ║ . ║ .....    ║ 
║ 3  ║ . ║ .....    ║ 
║ 3  ║ . ║ .....    ║ 
║  ║  ║      ║ 
║ .  ║ . ║ .....    ║ 
║ .  ║ . ║ .....    ║ 
║ .  ║ . ║ .....    ║ 
║  ║  ║      ║ 
╚════════╩══════╩═════════════════════╝ 

1) 방법이 결과

 
╔═══════╦═════════════╦═════════════════════╦════════════╦═════╦═════╗ 
║ name ║ number of ║  status  ║ nature of ║ ... ║ ... ║ 
║  ║ Employees ║      ║ products ║  ║  ║ 
╠═══════╬═════════════╬═════════════════════╬════════════╬═════╬═════╣ 
║ abc ║  20  ║ currently active ║ mechanical ║ ... ║ ... ║ 
║ def ║  40  ║ paused for transfer ║ software ║ ... ║ ... ║ 
║ ghi ║  50  ║ heavy duty   ║ support ║ ... ║ ... ║ 
║ . ║ ..  ║ ...     ║ ... ... ║  ║  ║ 
║ . ║ ..  ║ ...     ║ ... ... ║  ║  ║ 
║ . ║ ..  ║ ...     ║ ... ... ║  ║  ║ 
╚═══════╩═════════════╩═════════════════════╩════════════╩═════╩═════╝ 

2)

 
╔══════╦═══════════════════════════════════════════════════════════════════════════════════╗ 
║ name ║          notes          ║ 
╠══════╬═══════════════════════════════════════════════════════════════════════════════════╣ 
║ abc ║ number of Employees 20 , status currently active , nature of products mechanical ║ 
║ def ║ number of Employees 40 , status paused for transfer , nature of products software ║ 
║ ghi ║ number of Employees 50 , status heavy duty, nature of products support   ║ 
║  ║                     ║ 
║ ... ║ ..................................................        ║ 
║ ... ║ ..................................................        ║ 
║ ... ║ ..................................................        ║ 
║  ║                     ║ 
╚══════╩═══════════════════════════════════════════════════════════════════════════════════╝ 
+3

이 숙제인가? 너 뭐 해봤 니? 또한 질문을 다시 시도해보십시오. –

+0

미안해. 포맷하는 법을 알지 못 했어. 지금 끝났어..이게 내가 일하고있는 자원 관리 시스템이야. (그리고 나는 이것에 갇혀있다. – Mariam

+0

당신은 자신의 propernames와 fields로 모든 테이블을 넣을 수 있니 ..? ? –

답변

2

(1)

는이 결과가 필요하십니까 다음과 같은 방법을 하나 개의 테이블을 얻을 수를 얻으려면? 이 기준의 수를 알 수없는 동적 SQL의 사용을 요구하거나 결과의 열 수는

고정되지 않도록 고정되지 않습니다

(2)

SELECT d.DeptName, 
     notes = stuff(n.notes, 1, 1, '') 
FROM Departments d 
     OUTER APPLY 
     (
      SELECT ',' + c.Criteria + ' ' + dc.value 
      FROM DeptCriteria dc 
        INNER JOIN Criteria c  ON dc.CrID = c.id 
      WHERE dc.DeptID = d.deptID 
      ORDER BY c.id 
      FOR XML PATH('') 
     ) n (notes) 
+0

귀하의 회신에 많은 고맙습니다, 나는 내 PC에 도착하면 그것을 시도 할 것입니다. 번호 (1) 네, 내가 그것을 필요로 .. 내가 십자가와 함께이 문제를 해결하고 싶습니다하지만 난 모르겠어요 크로스 - SQL Server에서 함수 또는 사용자가 개발 한 함수가 필요합니다 ..? – Mariam

관련 문제