I have a table as shown below
+-----+------- ---+------------+------------+ | Id | Location | DateIn | Dateout | +-----+-----------+------------+------------+ | 117 | SHIP | 2021-09-01 | 2021-09-05 | | 117 | PORT | 2021-09-05 | 2021-09-13 | | 118 | SHIP | 2021-09-04 | NULL | | 119 | SHIP | 2021-09-04 | 2021-09-08 | | 119 | PORT | 2021-09-08 | 2021-09-10 | | 120 | SHIP | 2021-09-10 | NULL | +-----+-----------+------------+------------+ my desired output is like this
+-----+------- ----+------------+------------+------------+ | Id | SHIP-IN | SHIP-OUT | PORT-IN | PORT-OUT | +-----+------------+------------+------------+------------+ | 117 | 2021-09-01 | 2021-09-05 | 2021-09-05 | 2021-09-13 | | 118 | 2021-09-04 | NULL | NULL | NULL | | 119 | 2021-09-04 | 2021-09-08 | 2021-09-08 | 2021-09-10 | | 120 | 2021-09-10 | NULL | NULL | NULL | +-----+------------+------------+------------+------------+ the code I created is like this
SELECT * FROM ( SELECT Id, [Location] As Category, [Location]+'1' As Category1, DateIn, DateOut FROM tblLocation ) AS P PIVOT ( max(DateIn) FOR Category IN ([SHIP], [PORT]) ) AS pv1 PIVOT ( max(DateOut) FOR Category1 IN ([SHIP1], [PORT1]) ) AS pv2 GO and the result i got is
+-----+------------+------------+------------+------------+ | Id | SHIP | PORT | SHIP1 | PORT1 | +-----+------------+------------+------------+------------+ | 117 | 2021-09-01 | NULL | 2021-09-05 | NULL | | 117 | NULL | 2021-09-05 | NULL | 2021-09-13 | | 118 | 2021-09-04 | NULL | NULL | NULL | | 119 | 2021-09-04 | NULL | 2021-09-08 | NULL | | 119 | NULL | 2021-09-08 | NULL | 2021-09-10 | | 120 | 2021-09-10 | NULL | NULL | NULL | +-----+------------+------------+------------+------------+ how to fix this issue? please help