2013-08-05 8 views
0

매우 불편한 형식의 테이블이 있습니다.
예 :
열 :
SQL 테이블 형식을 다시 지정하는 중

Quarter/ID/Sales 
1 /234 /50 
1 /258/100 
2 /234/50 
2 /456/125 
3 /258/100 
3 /456/75 
3 /555/100 
4 /555/50 

이 그냥 예입니다은 5600 열 같은 현실이있다.

ID/ Q1 / Q2 / Q3 / Q4 
234/ 50 / 50 / 0 / 0 
258/ 100/ 0 / 100 / 0 
456/ 0 / 125 / 75 / 0 
555/ 0 / 0 / 100 / 50 


쉽게 바로 이러한 열을 이동하는 저를위한 방법은 어쩌면 조회의 일종을위한 기반으로, 거기 : 난 그냥 보여 예를 더처럼 보이도록

나는 테이블을 포맷 할 ID 번호? 각 분기에 대해 하나씩 네 개의 레코드가 아니라 별도의 열이있는 한 레코드의 각 ID에 대한 모든 데이터가 필요합니다. 지금까지 모두 내가했던

감사




은 --- 고유 한 ID를 가진 새 테이블을 만드는 것입니다. 그런 다음 모든 레코드를 Q1에 넣을 수있는 일종의 조인 또는 조회 인서트를 사용하고 싶습니다. 여기서 quarter는 1이고 딜러는 기록상의 딜러입니다.

답변

0

그럼 알아 냈습니다. 처음에 나는 새로운 테이블을 만들었다. 로 변경,

UPDATE newtable 
SET newtable.Q1 = oldtable.sales 
FROM newtable 
INNER JOIN oldtable 
ON newtable.ID = oldtable.ID 
WHERE oldtable.quarter = '1' 

그때 방금 복사 한 각 분기를했다 :

CREATE TABLE newtable (ID varchar (5), Q1 int, Q2 int, Q3 int, Q4 int) 

은 그 때 나는 독특한 ID의이

INSERT INTO newtable 
SELECT DISTINCT ID 
FROM oldtable 

그리고 Q1을 위해 내가 같은 삽입 문을 만들어 삽입 Q2를 실행 한 다음 WHERE 문에서 각각 '2'를 반환합니다.

중복 된 항목이 있는지 확인하기 만하면 다른 데이터 열과 짝을 이루는 선택 항목을 사용했기 때문에 실제 데이터 세트에 중복 항목이 있습니다.