Author |
Topic |
mtcoder
Starting Member
19 Posts |
Posted - 2011-08-26 : 09:32:16
|
I have a table that I need to pivot, noting too bad, but there are numerous rows per record. example:ticket sequence lat1 long1 lat2 long2 lat 3 long 3A1001 1 37.2 140 37.1 139 37.4 139.1A1001 2 37.1 140.2 37.2 138 37.5 139.2A1001 3 37.3 140.1 38 138.1 36.6 139.0What I need to get out is a list of lat longs so my results need to beticket lat longA1001 37.2 140A1001 37.1 139A1001 37.4 139.1Etc for all of the coordinates. Thoughts?Thank you |
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
Posted - 2011-08-26 : 09:40:24
|
[code]SELECT p.ticket,p.lat,q.longFROM(SELECT ticket,sequence,lat,ROW_NUMBER() OVER (PARTITION BY ticket,sequence ORDER BY Cat) AS SeqFROM(SELECT ticket,sequence,lat1,lat2,lat3FROM Table)tUNPIVOT (lat FOR cat IN (lat1,lat2,lat3))u)pINNER JOIN(SELECT ticket,sequence,long,ROW_NUMBER() OVER (PARTITION BY ticket,sequence ORDER BY Cat) AS SeqFROM(SELECT ticket,sequence,long1,long2,long3 FROM Table)t1UNPIVOT (long FOR cat IN (long1,long2,long3))u1)qON p.ticket=q.ticketAND p.sequence=q.sequenceAND p.Seq=q.Seq[/code]------------------------------------------------------------------------------------------------------SQL Server MVPhttp://visakhm.blogspot.com/ |
|
|
mtcoder
Starting Member
19 Posts |
Posted - 2011-08-30 : 15:14:02
|
much thanks, and one last favor. Where would a where clause fit to filter the ticket to a particular ticket?Thanks |
|
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
Posted - 2011-08-31 : 00:22:53
|
[code]SELECT p.ticket,p.lat,q.longFROM(SELECT ticket,sequence,lat,ROW_NUMBER() OVER (PARTITION BY ticket,sequence ORDER BY Cat) AS SeqFROM(SELECT ticket,sequence,lat1,lat2,lat3FROM TableWHERE ticket =<some ticket criteria>)tUNPIVOT (lat FOR cat IN (lat1,lat2,lat3))u)pINNER JOIN(SELECT ticket,sequence,long,ROW_NUMBER() OVER (PARTITION BY ticket,sequence ORDER BY Cat) AS SeqFROM(SELECT ticket,sequence,long1,long2,long3 FROM TableWHERE ticket =<some ticket criteria>)t1UNPIVOT (long FOR cat IN (long1,long2,long3))u1)qON p.ticket=q.ticketAND p.sequence=q.sequenceAND p.Seq=q.Seq[/code]------------------------------------------------------------------------------------------------------SQL Server MVPhttp://visakhm.blogspot.com/ |
|
|
|
|
|