2017-12-29 59 views
-1

:변환 및 피벗 MS-Access에서 내가 같은 테이블의 모양이

Field1 Field2  Blank Fail Pass Date 
a   1   0  20  40  170101 
a   2   1  19  99  170101 
b   1   0  54  24  170101 
c   3   1  24  30  170101 
a   1   0  11  19  170102 
b   2   0  21  266  170102 
a   1   2  10  40  170103 
.... 

사용자는 그 때 표시 할 날짜 범위를 선택하고 내 결과처럼 보이게하려는 :

Field1 Field2 0101_B 0101_F 0101_P 0102_B 0102_F 0102_P 0103_B 0103_F 0103_P 
a  1  0  20  40  0  11  19  2  10  40 
a  2  1  19  99 
b  1  0  54  24 
c  3  1  24  30  
b  2        0  21  266 

도움이 정말 감사합니다!

+1

SQL 쿼리와 같은 MS Access 쿼리는 이러한 계층 적 열을 생성하지 않습니다. Excel 피벗, SAS 테이블, Python 팬더 등을 고려하십시오. – Parfait

+0

감사합니다! 원하는 출력 형식을 변경하여 계층 형 열로 만들지 않았습니다. 이게 가능합니까? – Krystalcc

답변

0

옵션 :

  1. 크로스 탭의 소스로 UNION 쿼리 - 매개 변수가 정말 폼에 컨트롤을 참조해야합니다.
    PARAMETERS StartDate Long, EndDate Long; TRANSFORM Sum(Q.Data) AS SumOfData SELECT Q.Field1, Q.Field2, Q.Yr FROM (SELECT Field1, Field2, Blank AS Data, "B" AS Source, [Date], Mid([Date],3) & "_B" AS MonDayCat, Int(Left([Date],2)) AS Yr FROM Table1 UNION SELECT Field1, Field2, Pass, "P", [Date], Mid([Date],3) & "_P", Int(Left([Date],2)) AS Yr FROM Table1 UNION SELECT Field1, Field2, Fail, "F", [Date], Mid([Date],3) & "_F", Int(Left([Date],2)) AS Yr FROM Table1) AS Q WHERE (((Q.Date) Between [StartDate] And [EndDate])) GROUP BY Q.Field1, Q.Field2, Q.Yr PIVOT Q.MonDayCat;

  2. 세 크로스 탭 쿼리는 다음 크로스 탭에 가입

  3. 이러한 옵션의

없음 허용하지 것 '임시'테이블에 http://allenbrowne.com/ser-67.html#MultipleValues

  • VBA 프로 시저 작성 기록 검토 매일 2.5 년 동안 매일 데이터가있는 경우 연간 데이터입니다. CROSSTAB을 기반으로 영구적으로 실행되는 안정적인 보고서를 작성하는 것은 쉽지 않습니다. 검토 http://allenbrowne.com/ser-67.html#ColHead.