Unas preguntas...
żLos tipos sólo pueden ser A y B?
En cuanto al resultado en la TABLE_B
Código:
| ID |NOMBRE |TIPO|ESTADO|TIPO|ESTADO|
|----|--------|----|------|----|------|
| 1 |CABINA1 | B | LISTO| A | OK |
| 2 |CABINA2 | A | OK | B | LISTO|
No acabo de entender que las 2 columnas TIPO tengan los valores cambiados. Es decir, no sería más fácil rellenar inicialmente la TABLA_B con unos valores tal que así:
Código:
| ID |NOMBRE |TIPO|ESTADO|TIPO|ESTADO|
|----|--------|----|------|----|------|
| 1 |CABINA1 | A | NULL | B | NULL |
| 2 |CABINA2 | A | NULL | B | NULL |
Y luego ir haciendo UPDATES, según CABINA y TIPO.
Tampoco se si los valores CABINA1 y CABINA2 son de ejemplo y puedes tener más... (CABINA3, CABINA4,...)
Al final, para estos casos con una lógica más completa, también puedes hacer una función o un SP, que vaya haciendo los pasos que describes.
La SELECT INICIAL, luego la agrupación, y luego el INSERT o UPDATE final con un CASE.