배경 정보 큰 테이블 400M + 행이 매일 바뀝니다 (1 일 데이터는 새 데이터가 삭제됩니다) 테이블은 ' 하루 '필드에 31 칸막이가 있습니다.동적 7 일 행을 t-sql이있는 열로 변환하는 방법
Postcode, Deliverypoint, 7dayAverage, Day1,day2,Day3,Day4,Day5,Day6,Day7
SN1 1BG A1 2 0 1 2 1 3 4 0
내가 쉽게 7 일의 기간에 대한 데이터를 추출 할 수 있습니다 : 나는 형식의 데이터 7 일을 꺼내 필요
ID, Postcode, DeliveryPoint, Quantity, Day, Month
1 SN1 1BG A1 6 29 1
2 SN1 1BG A1 1 28 1
3 SN1 1BG A2 2 27 1
4 SN1 1BG A1 3 28 1
5 SN2 1AQ B1 1 29 12
6 SN1 1BG A1 2 26 12
: 테이블의 각 행은 다음과 유사한 데이터가 위에 표시된 것처럼 원주 형 버전을 만들어야합니다. #days은 7 일의 기간에 하루 번호를 가지고
select postcode,deliverypoint,
sum (case day when 23 then quantity else 0 end) as day1,
sum (case day when 24 then quantity else 0 end) as day2,
sum(case day when 25 then quantity else 0 end) as day3,
sum(case day when 26 then quantity else 0 end) as day4,
sum(case day when 27 then quantity else 0 end) as day5,
sum(case day when 28 then quantity else 0 end) as day6,
sum(case day when 29 then quantity else 0 end) as day7,
sum(quantity)*1.0/@daysinweek as wkavg
into #allweekdp
from maintable dp with (nolock)
where day in (select day from #days)
group by postcode,deliverypoint
:
나는 이런 식으로 뭔가가있다.
하지만 알 수 있듯이 하루의 숫자를 쿼리에 하드 코딩하여 임시 테이블에서 꺼내려고하지만 일을하는 방법을 볼 수 없습니다 (배열은 여기에 완벽)
아니면 완전히 잘못된 방식으로 진행됩니까?
친절 감사
스티브