2014-11-11 2 views
-2

End_user 테이블에 Name, City, Country, Plant_name, Unit_IDProject_NR 열이있는 데이터베이스가 있습니다.하나의 셀에서 SQL Server 2012 데이터베이스 여러 값 쿼리

는 지금은 End_user 여러 Plants, unitsProject_nr 's의 여러 도시 나 국가에 있다고 할 수있다. 따라서 데이터베이스는 이러한 셀에 여러 값을 가질 수 있어야합니다.

여러 쿼리를 시도했지만 오류가 계속 발생합니다.

예 :

  • 이름 : 가솔린
  • 도시 : 암스테르담, 레이캬비크
  • 국가 : 네덜란드, 레이캬비크
  • Plant_name : Plant_1, Plant_2, Plant_3
  • Unit_ID : 123, 345
  • Project_NR : 1234, 2123, 3456은, 7856

은 누군가가 나가 쿼리 도와 드릴까요?

+1

그리고 관계형 데이터베이스에 대한 책을 준비하십시오. 이론. 그런 다음 접근 방식을 다시 설계하십시오. 필드 당 여러 값 = 관계형 1 : m 모델을 설계하는 방법에 대한 단서가없는 프로그래머. 하나의 테이블이 아닙니다. 배수. – TomTom

+0

이 사이트에는 '1NF가 아닌'태그가 필요합니다. [this] (http://stackoverflow.com/questions/5493510/turning-a-comma-separated-string-into-individualrows)를보십시오. –

+0

** 각 열 또는 모든 행에 ** 최대 ** 하나의 값 **을 갖는 관계형 데이터베이스 디자인의 ** 기본 개념 **입니다. ** 여러 개의 값을 하나의 셀에 넣지 마십시오 ** 다시 돌아와서 당신을 물고 성능과 소프트웨어 개발 능력을 손상시킬 수 있습니다! 이 상황을 처리하려면 테이블간에 ** 관계 **를 사용해야합니다. 하나의 'end_user'는 여러 '도시'와 '국가'행에 연결될 수 있습니다. 이것이 관계형 데이터베이스의 작동 방식입니다. –

답변

1

행의 단일 필드에 여러 값을 저장하는 것은 좋지 않은 습관입니다. 구조화 방법에 대해 자세히 설명하지 않고 대답하려고하는 질문을 고려해야합니다. 그래서 하나 이상의 도시 또는 국가에 기반을 둔 경우 각 일반 사용자에 대해 기본 테이블에 여러 레코드가 있다고 가정합니다. 최종 사용자 당 1 레코드를 원하는 테이블을 원한다고 생각합니다. 그럼이 테이블의 목적은 무엇입니까? 도시와 같은 것들을 계산하는 것을 고려해보십시오. 이 최종 사용자에게는 2 개의 도시가 있습니다. 이에 대한 세부 정보가 필요하면 최종 사용자 당 2 개의 레코드로 테이블로 다시 전환하십시오. 또는 플래그 인 필드를 만들 수 있습니다. 런던 필드와 뉴욕 필드 중 하나를 플래그를 1 또는 0으로 설정할 수 있습니다. 이는 매우 제한된 방식으로 만 작동하지만 데이터 세트에서 작동 할 수 있습니다.