myDates myReturns ID
2012-05-02 0.020 1
2012-05-03 -0.017 1
2012-05-04 -0.026 1
2012-05-02 0.009 2
2012-05-03 0.004 2
2012-05-04 -0.003 2
2012-05-02 -0.003 3
2012-05-03 -0.005 3
2012-05-04 -0.003 3
2012-05-02 0.004 4
2012-05-03 0.010 4
2012-05-04 -0.021 4
나는 다음과 같이하기 위해 ID 열이 표를 돌리고 싶어 :
myDates 1 2 3 4
2012-05-02 0.020 0.009 -0.003 0.004
2012-05-03 -0.017 0.004 -0.005 0.010
2012-05-04 -0.026 -0.003 -0.003 -0.021
피벗에 내 코드는 순간 다음과 같습니다
:
Select * From @ReturnsTable
Pivot(Max(myReturns) For [ID] In ([1],[2],[3],[4])) As myPTable
코드의3210
이 부분은 :
([1],[2],[3],[4]))
나는 동적 절차를하기 위해 여기 @InString 참조하는 /로 교체하고자합니다. 스택에 다양한 동적 SQL 게시물을 시도했지만 다른 모든 시도에서 문제가 발생합니다. 어떤 아이디어?
편집 :
@bluefeet에 대한 답변. 나는 무엇을 시도했다.
1)
Execute
('Select * From @TempTable
Pivot(Max(myReturns) For ID In (' + @InString + ')) As myPTable')
결과 : 오류 @TempTable 선언해야 -
2) 다음에 #TempTable @TempTable 변경 범위 밖 테이블; 인쇄로 : 잘못된 구문 가까운 '1'ID의이 [1], [2], [3으로 구분해야한다고 생각하는 날 리드
: 그 실행하면
Select * From #TempTable
Pivot(Max(myReturns) For ID In (1,2,3)) As myPTable
, 나는 오류 수 ] ..
는 이전 또한 실행 정상으로 실행했지만, 한 또한 Exec에서 sp_executesql을
잘못된 구문을 반환하는 두 번째 시도 - 열이 숫자이므로 각 열을 대괄호로 묶어야합니다 (예 :'[1], [2], [3]') – Taryn