I have a CSV import file that I have no control over concerning the column names or format. The headers consist of id,[temperature range 1],[temperature range 2],[temperature range 3],[temperature range],[temperature range 5],[temperature range 6],[temperature range 7],[temperature range 8], [temperature range 9],[temperature range 10],[temperature range 11],[temperature range 12], [Pressure Range 1],[Pressure Range 2],[Pressure Range 3],[Pressure Range 4],[Pressure Range 5], [Pressure Range 6],[Pressure Range 7],[Pressure Range 8],[Pressure Range 9], [Pressure Range 10],[Pressure Range 11],[Pressure Range 12],[Calcite Saturation 1],[Calcite Saturation 2],[Calcite Saturation 3],[Calcite Saturation 4],[Calcite Saturation 5],[Calcite Saturation 6],[Calcite Saturation 7],[Calcite Saturation 8],[Calcite Saturation 9],[Calcite Saturation 10],[Calcite Saturation 11],[Calcite Saturation 12]
.
I have been able to unpivot the table using this code:
Select id,Temp,Psia,CalciteX
from (
Select id,[temperature range 1],[temperature range 2],[temperature range 3],[temperature range 4],[temperature range 5],[temperature range 6],[temperature range 7],[temperature range 8], [temperature range 9],[temperature range 10],[temperature range 11],[temperature range 12],[Pressure Range 1],[Pressure Range 2],[Pressure Range 3],[Pressure Range 4],[Pressure Range 5], [Pressure Range 6],[Pressure Range 7],[Pressure Range 8],[Pressure Range 9],[Pressure Range 10],[Pressure Range 11],[Pressure Range 12],[Calcite Saturation 1],[Calcite Saturation 2], [Calcite Saturation 3],[Calcite Saturation 4],[Calcite Saturation 5],[Calcite Saturation 6],[Calcite Saturation 7],[Calcite Saturation 8],[Calcite Saturation 9],[Calcite Saturation 10], [Calcite Saturation 11],[Calcite Saturation 12]
from frenchcreekscale where id ='10009-2019111114.1/P' ) as src
UNPivot ( Temp for Temps in([temperature range 1],[temperature range 2],[temperature range 3],[temperature range 4],[temperature range 5],[temperature range 6],[temperature range 7],[temperature range 8], [temperature range 9],[temperature range 10],[temperature range 11],[temperature range 12]) ) AS Temps
UNPivot ( Psia for Pressures in([Pressure Range 1],[Pressure Range 2],[Pressure Range 3],[Pressure Range 4],[Pressure Range 5],[Pressure Range 6],[Pressure Range 7],[Pressure Range 8],[Pressure Range 9], [Pressure Range 10],[Pressure Range 11],[Pressure Range 12]) ) AS Pressures
UNPivot ( CalciteX for CalciteXs in([Calcite Saturation 1],[Calcite Saturation 2], [Calcite Saturation 3],[Calcite Saturation 4],[Calcite Saturation 5],[Calcite Saturation 6],[Calcite Saturation 7],[Calcite Saturation 8],[Calcite Saturation 9],[Calcite Saturation 10], [Calcite Saturation 11],[Calcite Saturation 12]) ) AS CalX
This is the partial output I am getting:
id Temp Psia CalciteX
-------------------- ---- ---- --------
10009-2019111114.1/P 70 0 0.165885
10009-2019111114.1/P 70 0 0.180097
10009-2019111114.1/P 70 0 0.195601
10009-2019111114.1/P 70 0 0.211319
10009-2019111114.1/P 70 0 0.226902
10009-2019111114.1/P 70 0 0.241826
10009-2019111114.1/P 70 0 0.25538
10009-2019111114.1/P 70 0 0.267159
10009-2019111114.1/P 70 0 0.276571
10009-2019111114.1/P 70 0 0.283237
10009-2019111114.1/P 70 0 0.286532
10009-2019111114.1/P 70 0 0.286462
10009-2019111114.1/P 70 147 0.165885
10009-2019111114.1/P 70 147 0.180097
10009-2019111114.1/P 70 147 0.195601
10009-2019111114.1/P 70 147 0.211319
10009-2019111114.1/P 70 147 0.226902
10009-2019111114.1/P 70 147 0.241826
10009-2019111114.1/P 70 147 0.25538
10009-2019111114.1/P 70 147 0.267159
10009-2019111114.1/P 70 147 0.276571
10009-2019111114.1/P 70 147 0.283237
10009-2019111114.1/P 70 147 0.286532
10009-2019111114.1/P 70 147 0.286462
10009-2019111114.1/P 70 278 0.165885
10009-2019111114.1/P 70 278 0.180097
etc
It should only be 12 records:
id Temp
-------------------- ----
10009-2019111114.1/P 70
10009-2019111114.1/P 80
10009-2019111114.1/P 90
10009-2019111114.1/P 100
10009-2019111114.1/P 110
10009-2019111114.1/P 120
10009-2019111114.1/P 130
10009-2019111114.1/P 140
10009-2019111114.1/P 150
10009-2019111114.1/P 160
10009-2019111114.1/P 170
10009-2019111114.1/P 180
With the other fields tied to the id.
I am not understanding how to unpivot the next column with out generating the multiple records.