I have a table, which looks like this:
| Aircraft | WorkOrder | EngOrder | Description | PartNo | InstPosition |
|---|---|---|---|---|---|
| KHB | 21 | 45 | engine 1 | pw123 | E1 |
| KHB | 21 | 45 | engine 4 | pw123 | E2 |
| KHB | 22 | 45 | engine 2 | pw122 | E1 |
| KBG | 31 | 55 | rotor engine | v123 | E2 |
| KBG | 36 | 51 | engine 9 | v156 | E1 |
| KBG | 31 | 55 | engine comp | v123 | E1 |
I need to select only rows which are similar in WorkOrder, EngOrder and PartNO, but different in InstPosition. My resulting table should look like this:
| Aircraft | WorkOrder | EngOrder | Description | PartNo | InstPosition |
|---|---|---|---|---|---|
| KHB | 21 | 45 | engine 1 | pw123 | E1 |
| KHB | 21 | 45 | engine 4 | pw123 | E2 |
| KBG | 31 | 55 | rotor engine | v123 | E2 |
| KBG | 31 | 55 | engine comp | v123 | E1 |
I tried to use self join, but it returns empty table:
SELECT a.*
FROM table a
INNER JOIN b ON a.WorkOrder = b.WorkOrder
AND a.EngOrder = b.EngOrder
AND a.PartNO = b.PartNO
AND a.InstPosition != b.InstPosition ```