다음 표의 데이터가 있습니다.SQL Server에서 동적으로 열 값을 추가하십시오.
State P_Name Product Apr-2013 May-2013 Jun-2013 July-2013 Aug-2013 Sep-2013 Oct-2013 Nov-2013 Dec-2013 Jan-2014 Feb-2014 Mar-2014 =============================================================================================================================================================== s1 p1 pro1 1500 4587 5245 6541 9683 45878 65464 4444 4411 21452 223322 232322 s1 p1 pro2 1500 4587 5245 6541 9683 45878 65464 4444 4411 21452 223322 232322
처음 세 개의 열은 정적이지만 값은 동적이며 나머지 열 이름과 값은 동적입니다. 이에 의해 가변
Declare @MONTHS INT
SET @MONTHS = 1--3/6/12 can be 1/3/6/12 as monthly/quater/half-year/fullyear
는 이제 내지 제/제 대 제/제 대 여섯/제 간 열두 열 값을 추가 한 경우에만 표시 할 @MONTHS
의 값에 따라가 열이 . IF
SET @MONTHS = 1
위의 데이터는 그 결과입니다. 그러나
SET @MONTHS = 3
는 원하는 결과는 다음과 같다 : 여기
State P_Name Product Jun-2013 Sep-2013 Dec-2013 Mar-2014 ======================================================================= s1 p1 pro1 11332 62102 74319 477096 s1 p1 pro2 11332 62102 74319 477096
만 3 월 열은 4 ~ 2,013의 첨가로 표시되는 5 ~ 2013 쥰 2,013 열 값 (jun-에서 2013 칼럼), 6 번과 12 번 칼럼에서도 6 번과 12 번을 원한다. 월 열 수와 행 수는 동적입니다. 월 열 수는 1/3/6/12의 배수 일 수 있습니다. 도움이 필요합니다. 감사합니다. .
편집 : 위 테이블 데이터가 PIVOT의 도움으로 다른 테이블로 유도된다. 루프없이 PIVOT 앞에/가능합니까? 아래는 PIVOT 이전의 데이터입니다.
state p_name product amount monthnames ================================================ s1 p1 pro1 1500 apr-2013 s1 p1 pro1 4587 may-2013 s1 p1 pro1 5245 jun-2013 and so on................ ........................
이미 갖고 계신 것을 보여주십시오. – RBarryYoung
이것에 대해 아무런 아이디어도 얻지 못했습니다 :(잠시 후 중요한 정보를 입력 해 주셔서 죄송합니다 .... !! – LeO
사이트 규칙 중 하나는 다음과 같습니다. "코드를 요청하는 질문은 해결 된 문제에 대한 최소한의 이해를 보여 주어야합니다 시도한 솔루션 포함, 작동하지 않는 이유 및 예상 결과 포함 * "따라서 정적 부품에 대해 얻은 바를 최소한 보여 주어야합니다. 그러면 동적 인 것으로 변경할 수 있습니다. – RBarryYoung