2013-11-10 5 views
0

두 개의 액세스 데이터베이스 테이블이 있습니다. 하나는 트레이너라고하고 다른 하나는 트레이너 플랜이라고합니다. Visual Studio 2010의 C# 응용 프로그램에서이 데이터베이스를 쿼리하여 표시 할 수 있어야합니다. 나는 여러 번 강사를 전시 할 수 없다. 한 번 표시 한 다음 마지막에 제공하는 모든 트레이너 플랜을 표시해야합니다.모든 동일한 속성을 가진 ArrayList의 항목 결합하기

나는 모든 강사를 문제없이 표시 할 수 있습니다. 내가 가지고있는 문제는 트레이너의 모든 트레이너 계획을 마지막에 한 번만 표시하는 것입니다. 지금 당장 나는 모든 것을 모두 arraylist에 저장하고있다.

enter image description here

:

여기

enter image description here

내가 응용 프로그램에서 볼 필요하는 방법입니다 : 여기

은 트레이너와 그들의 계획을 모두 보여줍니다 데이터베이스에서 쿼리입니다

계획에 대한 별도의 배열을 만드는 방법에 대해 생각해 보았습니다. 나는 이름이 같은지 확인하기 위해 점검하고, 그렇다면 그 계획을 함께 추가 할 것입니다. 그러나 그것이 올바른 길인지, 실제로 어떻게해야하는지에 대해서는 확실치 않습니다. 어떤 아이디어를 얻기 위해 무엇을 검색해야할지 모르겠습니다.

편집 : 여기

내가 키가 해당 테이블 이름 사이에 연결한다고 가정 트레이너 테이블 여기

enter image description here

에게 트레이너 계획 테이블

enter image description here

+0

당신의 C# 코드는 어떻게 생겼습니까 ?-)? –

+0

참고로, 왜 ArrayList를 사용하고 있습니까? 그것은 쓸모가 없습니다. –

+0

@ John Saunders 제목에 태그를 추가하지 못했습니다. 어떻게 된 일인지 잘 모르겠습니다. arraylists에 관해서는, 학교에 대한 문제는 그들이 당신에게 구식 재료를 가르쳐야한다는 것입니다. 나는 목록 객체를 사용해야한다는 것을 알고 있지만, 불행하게도 우리는 아직 학교에서 또는 최소한 내가 코스에서 가르쳐야한다. –

답변

0

입니다 TrainerID와 다음 SQL 쿼리가 작동하면 쿼리를 분리 할 필요가 없습니다. ng.

SELECT MAX(t.FirstName) AS FirstName, 
     MAX(t.LastName) AS LastName, 
     MAX(t.Phone) AS Phone, 
     MAX(t.[Hours]) AS [Hours], 
     (SELECT CONVERT(varchar(10), tp.PlanID) + ' ' 
      FROM trainerplan tp 
      WHERE tp.TrainerID = t.ID 
      ORDER BY tp.PlanID 
      FOR XML PATH('')) AS PlanID 
FROM trainers t 
GROUP BY t.TrainerID ; 
+0

이 쿼리는 Access에서 "쿼리 식의 구문 오류"오류를 표시합니다. 두 번째 SELECT 문을 강조 표시합니다. 그것들은 tp.TrainerID = t.ID입니다. 내가 쿼리에서 변경하고 여전히 오류가 발생합니다. 두 테이블의 스크린 샷을 제공 할 것입니다. 귀하의 SQL 문은 나를 위해 꽤 복잡합니다.ConcatRelated 함수를 살펴 보았지만 아직 작동하지 못했습니다. –

+0

어떤 데이터베이스를 사용했는지 묻는 것을 잊어 버렸습니다. 오류 메시지가 무엇입니까? – Alice

+0

나는 Access를 사용하고 있으며, 나에게 끔찍한 오류 메시지를 제공한다. 그것이 말하는 것은 쿼리 표현식의 구문 오류입니다. SELECT CONVERT (varchar (10), tp.PlanID) + 'FROM trainerplan tp WHERE tp.TrainerID = t.ID XML 기반의 tP.PlanID (' ') –

관련 문제