2011-10-14 2 views
0

parents (실제 엄마 & 테이블에 아빠 부모 이름) 테이블, children 테이블 (이들은 부모의 자식입니다. 성) 및 x-ref 테이블 : xref-id, parent-id 및 child-id.가변 개수 레코드의 단일 행을 반환하는 SQL x-ref 쿼리

xref 테이블은 엄마/아버지 콤보가 가질 수있는 다양한 수의 어린이를 수용합니다.

부모 및 자식 이름의 단일 행을 반환하는 쿼리가 필요합니다. 내가 직면 한 문제는 부모 중 한 명은 아이를 낳고, 일부는 아이를 두 명 이상 낳는다는 것입니다.

나는 매우 난처한 상황에 빠진거야 ...

TLB_PARENT: 
p_id, momfname, dadfname 

TLB_CHILD: 
c_id, childfname, childlname 

TLB_XREF 
xref_id, p_id, c_id 

어떤 도움도 정말 감사합니다!

+0

왜 완벽하게 정규화 된 구조를 완전히 비정규 화하는 쿼리가 필요합니까/필요합니까? –

+2

이 질문과 대답을 확인하십시오 : http://stackoverflow.com/questions/451415/simulating-group-concat-mysql-function-in-ms-sql-server-2005 –

+0

또는 다른 방법으로 PIVOT 및 그 결과 10 개의 하위 이름에 대해 10 개의 열이 생성됩니다 (일부 NULL 포함). http://stackoverflow.com/questions/198716/pivot-in-sql-2005 –

답변

0

SQL 쿼리는 동적이 아니며 매우 단단하게 수정되었습니다.

가장 가까운 아이는 최대 어린이 수를 결정하는 것입니다. 그러면 많은 셀에서 공백이 생기 겠지만 더 중요한 것은 표가 채워지고 일부 어린이가 표시되지 않을 가능성입니다.

수행 방법은 보유하고있는 SQL 버전에 따라 다릅니다. 또한


, ... 당신은 현실에서이 시나리오를 가질 수 있습니다

  • 여자 나과 마나가 ChildA이
  • 여자 나하고 ManB는 ChildB이
  • WomanB 및 ManB는 이 아동 C
  • 여성 B 및 ManA는 ChildD 있습니다.

약간 지저분한 세상이지만, 나는 정말로 정말 지저분한 가족을 알고 있습니다. 나는 당신의 단순화가 어떤 적당한 크기의 실제 세계 인구에 문제가있을 것 같다고 지적하고 있습니다.

+0

답장을 보내 주셔서 감사합니다.이 프로젝트에는 커플 당 최대 10 명의 어린이가 허용됩니다. 또한 우리는 엄격하게 남자/여자 -A가 child1, child2, childn (최대 10)을 가질 것이라는 점에서 콤보를 제어합니다. – user995727

+0

어떤 버전의 SQL입니까? (희망을 갖고 다른 사람이 당신에게 모범을 보여 주겠다, 지금 당장 떠나야한다. 좋은 주말 보내라.) – MatBailie

+0

Microsoft SQL Server 2005는 우리가 사용하고있는 것이다. - 다시 답장을 보내 주셔서 감사합니다! – user995727

관련 문제