Columns to Rows in MS Access

前端 未结 1 651
长情又很酷
长情又很酷 2020-12-21 08:25

I am trying to create a query in MS Access to ultimately take the output from this:

Name        Cat 1   Cat 2   Cat 3   Cat 4   Cat 5   Cat 6
Joe         2           


        
相关标签:
1条回答
  • 2020-12-21 09:00

    First create a UNION query to normalize your table, then a crosstab to display the data:

    SELECT [Name], "Cat 1" As Cat, [Cat 1] As CatVal FROM Table
    UNION ALL
    SELECT [Name], "Cat 2" As Cat, [Cat 2] As CatVal FROM Table
    <...>
    

    The query wizard will guide you through creating the crosstab.

    EDIT re comments

    To normalize the table of sample data, you can say:

    SELECT [Name], "X1" As Cat, [X1] As CatVal FROM Table
    UNION ALL
    SELECT [Name], "X2" As Cat, Nz([X2A],0)+Nz([X2B],0)+Nz([X2C],0) As CatVal 
       FROM Table
    UNION ALL
    SELECT [Name], "X3" As Cat, Nz([X3A],0)+Nz([X3B],0)+Nz([X3C],0) As CatVal 
       FROM Table
    UNION ALL
    SELECT [Name], "X4" As Cat, [X4] As CatVal FROM Table
    UNION ALL
    SELECT [Name], "X5" As Cat, [X5] As CatVal FROM Table
    

    Let us say the union query is QueryX:

    TRANSFORM First(QueryX.CatVal) AS FirstOfCatVal
    SELECT QueryX.Cat
    FROM QueryX
    GROUP BY QueryX.Cat
    PIVOT QueryX.Name;
    
    0 讨论(0)
提交回复
热议问题