복붙노트

[SQL] 액세스에서 여러 필드 및 수출에 피벗

SQL

액세스에서 여러 필드 및 수출에 피벗

나는 제조 공장에 대한 액세스 응용 프로그램을 구축하고 보고서로 제공 한 과정에 따라 목록을 다른 데이터 포인트가. 나는 외모는 다음을 좋아하는 보고서를 생성 할 수있는 방법이있다.

 Batch     Zone    Value1     Value 2   etc.
 25        1       5          15
 25        2       12         31
 26        1       6          14 
 26        2       10         32

그러나, 다른 형식의 데이터를 볼 필요가있다. 그들은 모든 데이터 수평으로 배치 당 한 줄을 싶습니다. 이처럼 ...

                Zone 1                Zone 2
 Batch     Value1     Value2     Value1     Value2
 25        5          15         12         31
 26        6          14         10         32

두 번째 예에서와 같이 표시된 경우 모두에서, 칼럼 (157)이있을 것이다. 이 7 개 고유의 필드 이름이 있지만, 나머지는 반복되는 14 개 가지 데이터 유형입니다. 나는 그들이 원하는 형식으로 데이터를 표시하는 쿼리를 얻을 수없는 필드 이름이 동일하다는 사실을 할 수 있지만, 그것에게 첫 번째 방법을 어렵지 않다. 나는 테이블에 데이터를 삽입 할 VBA를 사용할 수 있지만 중복 필드 이름을 사용할 수 없습니다, 그래서 갈 때 의미하는 것은 무엇이든 Excel로 필드 이름을이 수출 및 ZONE1 (같은 부분이있을 수 없습니다 , ZONE2 등) 나 수출에있는 다음 읽기 쉬운 방법으로 표시하고 다른 쪽 끝에서 엑셀 시트의 일부 VBA를 처리 할 것입니다, 그래서 "나는이에 보고서를 연결할 수 있지만, 보고서 너비는 22 일 수있다 .

나는 형식 # 1에 데이터를 얻을 수 있습니다, 내가 배치 번호를 기반으로 하나의 긴 행에 표시 할 데이터를 얻을 수있는 방법은 무엇입니까? 다른 사람이 행할 방법에 대한 좋은 아이디어가 있습니까?

어떤 제안을 엽니 다. 감사!

해결법

  1. ==============================

    1.귀하의 질문에 당신은 말

    귀하의 질문에 당신은 말

    다음과 같은 데이터를 나열

    Batch  Zone  Value1  Value2
    -----  ----  ------  ------
       25     1       5      15
       25     2      12      31
       26     1       6      14
       26     2      10      32
    

    이제 아마도 데이터가 이미 (별도의 행에 다른 값) "유엔 - 피벗"형식 어딘가에있을 수 있지만, 그렇지 않으면 것은 당신은 것을 달성하기 위해 다음과 같은 질의 같은 것을 사용합니다

    SELECT 
        [Batch],
        "Zone" & [Zone] & "_" & "Value1" AS [ValueID],
        [Value1] AS [ValueValue]
    FROM BatchDataByZone
    UNION ALL
    SELECT 
        [Batch],
        "Zone" & [Zone] & "_" & "Value2" AS [ValueID],
        [Value2] AS [ValueValue]
    FROM BatchDataByZone
    

    ... 반환 :

    Batch  ValueID       ValueValue
    -----  ------------  ----------
       25  Zone1_Value1           5
       25  Zone2_Value1          12
       26  Zone1_Value1           6
       26  Zone2_Value1          10
       25  Zone1_Value2          15
       25  Zone2_Value2          31
       26  Zone1_Value2          14
       26  Zone2_Value2          32
    

    그러나 당신은 당신이 경우 [BatchDataUnpivoted가] 다음은 각 배치에 대한 값 "에서 문자열"에 간단한 크로스 탭 쿼리를 사용할 수있는 등 그 쿼리를 저장, 그 지점에 도착 ...

    TRANSFORM Sum(BatchDataUnpivoted.[ValueValue]) AS SumOfValueValue
    SELECT BatchDataUnpivoted.[Batch]
    FROM BatchDataUnpivoted
    GROUP BY BatchDataUnpivoted.[Batch]
    PIVOT BatchDataUnpivoted.[ValueID];
    

    ... 돌아 ...

    Batch  Zone1_Value1  Zone1_Value2  Zone2_Value1  Zone2_Value2
    -----  ------------  ------------  ------------  ------------
       25             5            15            12            31
       26             6            14            10            32
    
  2. from https://stackoverflow.com/questions/19352120/pivot-on-multiple-fields-and-export-from-access by cc-by-sa and MIT license