uniendo columnas de la misma tabla con diferentes criterios – SQL

Puedo consultar con una condición (como se muestra en la image a continuación) pero cuando consulto con un par de criterios y trato de crear dos mismas columnas de la misma tabla con diferentes criterios, no obtengo ningún resultado. La segunda image es el resultado esperado que no puedo recuperar. Cualquier input es muy apreciada. Gracias.

select save_line from save_output_table where execution_id in ('292') and seq_id = '0' and save_type='R' order by line_id ASC +------------+ | Save_line | +------------+ | 17 | | 22 | | 23 | +------------+ SELECT ( select save_line from save_output_table where execution_id in ('292') and seq_id = '0' and save_type='R' order by line_id ASC ) as save_line1, ( select save_line from save_output_table where execution_id in ('286') and seq_id = '0' and save_type='R' order by line_id ASC ) as save_line2 from save_output_table +-------------+------------+ | Save_line 1 | Save_line2 | +-------------+------------+ | 17 | 9 | | 22 | 5 | | 23 | 3 | +-------------+------------+ 

Data de muestra :

  +---------------+--------+-----------+---------+-----------+ | execution_id | seq_id | save_type | line_id | save_line | +---------------+--------+-----------+---------+-----------+ | 286 | 0 | R | 1 | 17 | | 286 | 0 | R | 2 | 22 | | 286 | 0 | R | 3 | 23 | | 286 | 0 | D | 1 | 17 | | 286 | 0 | D | 2 | 22 | | 286 | 0 | D | 3 | 23 | | 292 | 0 | R | 1 | 9 | | 292 | 0 | R | 2 | 5 | | 292 | 0 | R | 3 | 3 | | 292 | 0 | D | 1 | 98 | | 292 | 0 | D | 2 | 622 | | 292 | 0 | D | 3 | 273 | +---------------+--------+-----------+---------+-----------+ 

Por lo tanto, si desea lists de save_line en order por line_id, en columnas diferentes según save_type y execution_id, debe pivotar. Hay algunas forms diferentes de hacerlo. Aquí hay una pareja que debería funcionar sin importar qué sabor de SQL estés utilizando:

 SELECT line_id, max(CASE WHEN execution_id = '292' and save_type = 'R' then save_line end) R_292, max(CASE WHEN execution_id = '286' and save_type = 'R' then save_line end) R_286 FROM save_output_table GROUP BY line_id 

o

 SELECT t1.save_line save_line1, t2.save_line save_line2 FROM (SELECT * FROM save_output_table WHERE save_type = 'R' and execution_id = '292' ) t1 JOIN (SELECT * FROM save_output_table WHERE save_type = 'R' and execution_id = '286' ) t2 ON t1.line_id = t2.line_id 

Nota: para la segunda opción, la unión solo proporciona lists completas si hay el mismo número de line_ids para cada condición. Si no lo hay, debe cambiarlo a FULL OUTER JOIN, que no funcionaría en MySQL y posiblemente en otros.