'MS Access version of a Python melt
Assuming a table organized thus:
Row |  School | LocationCode2011 |  LocationCode2012 | LocationCode2013 
001      ABC        1000A                1000B                2000X
002      DEF        2000A                2000B                4000X
With the intent to change it to this:
Row |  School |    Location        | Value
001      ABC    LocationCode2011     1000A
001      ABC    LocationCode2012     1000B
001      ABC    LocationCode2013     2000X
002      DEF    LocationCode2011     2000A
002      DEF    LocationCode2012     2000B
002      DEF    LocationCode2013     4000X
Python is my preferred language but I need this to happen in MS Access. In Python I would do
df2 = df.melt(id_vars=["Row","School"], value_vars=["LocationCode2011", "LocationCode2012", "LocationCode2013""], var_name="Location",val_name="Value")
and receive a new table stored in df2. I've looked for documentation on "melting" in Access and so far and I don't know if Transform is quite what I need.
Solution 1:[1]
In Access, this rearrangement of data to normalized structure can be done with a UNION query.
SELECT Row, School, LocationCode2011 AS Value, "LocationCode2011" AS Location FROM tablename
UNION SELECT Row, School, LocationCode2012, "LocationCode2012" FROM tablename
UNION SELECT Row, School, LocationCode2013, "LocationCode2013" FROM tablename;
First SELECT line defines data type and field names. There is a limit of 50 SELECT lines.
Then if you want it committed to a new table, use this query as source for a SELECT INTO action SQL or if table already exists, an INSERT SELECT action.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source | 
|---|---|
| Solution 1 | 
