2015-02-03 4 views
1

다시 한 번 문제가 있습니다. 설명에 따라두 개의 열로 순차적으로 레코드 표시

InstitutionalReportRecordsID   |StringValue |StringEntryNumber |Description |DeleteBit 
A1E16CCA-1120-43A8-B562-3AE0794CFEE5 01/14/2015   0     ThisYearTermA 0 
A1E16CCA-1120-43A8-B562-3AE0794CFEE5 12/10/2014   0     ThisYearTermB 0 
A1E16CCA-1120-43A8-B562-3AE0794CFEE5 NULL    1     ThisYearTermA 0 
A1E16CCA-1120-43A8-B562-3AE0794CFEE5 NULL    1     ThisYearTermB 0 
A1E16CCA-1120-43A8-B562-3AE0794CFEE5 NULL    2     ThisYearTermA 0 
A1E16CCA-1120-43A8-B562-3AE0794CFEE5 NULL    2     ThisYearTermB 0 
A1E16CCA-1120-43A8-B562-3AE0794CFEE5 NULL    3     ThisYearTermA 0 
A1E16CCA-1120-43A8-B562-3AE0794CFEE5 NULL    3     ThisYearTermB 0 
A1E16CCA-1120-43A8-B562-3AE0794CFEE5 NULL    4     ThisYearTermA 0 
A1E16CCA-1120-43A8-B562-3AE0794CFEE5 NULL    4     ThisYearTermB 0 
A1E16CCA-1120-43A8-B562-3AE0794CFEE5 3A15    5     ThisYearTermA 0 
A1E16CCA-1120-43A8-B562-3AE0794CFEE5 2B15    5     ThisYearTermB 0 
A1E16CCA-1120-43A8-B562-3AE0794CFEE5 3A15    5     ThisYearTermA 0 
A1E16CCA-1120-43A8-B562-3AE0794CFEE5 2B15    5     ThisYearTermB 0 

이 테이블에는 데이터 및 문자열 항목 번호 : 첫 번째 예 :

그래서 나는 테이블을 가지고, 그것은 다음과 같습니다. 이들은 StringValue 열을 표시하기위한 X 및 Y 좌표로 작용합니다.

두 번째 예 : 모두가 말하고 완료되면

의 출력은, 다음과 같이됩니다

Descrip   ReportDate DataColumnOne DataColumnTwo DataColumnThree Counts Comment 
ThisYearTermA 11/12/2014 NULL    NULL   NULL   NULL 2A15 
ThisYearTermB 12/10/2014 NULL    NULL   NULL   NULL 2B15 
다음

무슨 일이 일어나고있는 것입니다. 나는 보고서를 작성하고 있는데, 위의 첫 번째 코드 예제에 해당하는 테이블로 밀어 넣어야한다. 그런 다음 비즈니스 인텔리전스 사용자 중 한 명에게 2 번째 예와 일치하는 SQL Blob을 자동 이메일로 보내 작업을 수행하여 Excel에 입력하고 회사에 이메일로 보낼 수 있어야합니다.

나는 여기에 둥근 홀드로 정사각형 페그를 다소 밀어 넣고있다. 이 작업을 위해 새로운 테이블 세트를 만들 수 있었다면 모든 것이 훨씬 쉬워 졌을 것입니다. 현재 우리가 저장하고 유지 관리하는 방법에 더 잘 부합하는 것은 말할 것도 없습니다. 슬프게도, 나는 안된다고했다.

지금까지 제 조작에서 두 번째 예제와 일치하도록 출력을 얻으려면 select 문을 작성할 수 없었습니다.

제안 사항?

+0

입력 세트를 기준으로 ReportDate, count, DataColumnOne/two/three 열을 구성하는 요소는 무엇입니까? – SoulTrain

+0

그들은 sproc 소스에 의해 정의됩니다 (당신은 정말로 그것을보고 싶지 않습니다). 그들이이 시점에 도달하기 전에, 나는 Varchar (50)로 설정합니다. – user1949329

답변

1

이와 비슷한? 값 필드가 테이블과 일치하지 않기 때문에 주석 필드는 실제로 이해가되지 않았지만 값의 최대/최소값이 작동 할 수 있습니다.

select 
    Description, 
    max(convert(datetime, case when StringEntryNumber = 0 then StringValue else NULL end, 101)) as ReportDate, 
    max(case when StringEntryNumber = 1 then StringValue else NULL) as DataColumnOne, 
    max(case when StringEntryNumber = 2 then StringValue else NULL) as DataColumnTwo, 
    max(case when StringEntryNumber = 3 then StringValue else NULL) as DataColumnThree, 
    max(case when StringEntryNumber = 4 then StringValue else NULL) as Counts, 
    max(case when StringEntryNumber = 5 then StringValue else NULL) as Comment 
from 
    table 
group by 
    Description 
+0

이것은 가깝습니다. 이상하게도, 이것은 이전에 "코멘트 열"이 마지막 행에 붙지 않고 자체 행에 삽입되는 것과 동일한 문제를 가지고 있습니다. 그래도 함께 놀아 보겠습니다. – user1949329

+0

별도의 행인 경우 설명 필드 값에 잘못된 것이 있어야합니다.이 쿼리는 설명 당 하나의 행만 반환해야하기 때문입니다. –

+0

걱정할 필요가 없습니다. 조금만 조정하면 완벽하게 작동합니다. 도와 줘서 고마워, 나는 완전히 다른 길을 가고 있었다. 그리고 이것이 내가 필요한 것이다. – user1949329

관련 문제