How to do this sql

2

I have the following table:

table http://i62.tinypic.com/35mjjhz.jpg

I use a command SELECT , type:

SELECT estudante, conceito_1, conceito_2 FROM estudante WHERE etapa = '1ª'

How could I make a single select to get the 2nd and 3rd steps as well?

And I would like SQL to generate:

table http://i60.tinypic.com/2j64y8n.jpg

    
asked by anonymous 15.08.2015 / 16:39

1 answer

2

Imagining that your table is named Estudante , this can be done with some subqueries:

select e.estudante, 
  a11.conceito_1, a11.conceito_2, a11.etapa,
  a22.conceito_1, a22.conceito_2, a22.etapa,
  a33.conceito_1, a33.conceito_2, a33.etapa
FROM Estudante e
JOIN 
  (
        SELECT estudante, conceito_1, conceito_2, etapa
        FROM Estudante where etapa = '1a'
    ) AS a11
ON e.estudante = a11.estudante
JOIN 
  (
        SELECT estudante, conceito_1, conceito_2, etapa
        FROM Estudante where etapa = '2a'
    ) AS a22
ON e.estudante = a22.estudante
JOIN 
  (
        SELECT estudante, conceito_1, conceito_2, etapa
        FROM Estudante where etapa = '3a'
    ) AS a33
ON e.estudante = a33.estudante
GROUP BY e.estudante

You can see it working here at this link: link

I could not think of a query that works regardless of the number of steps, without the need to add a new subquery manually.

    
15.08.2015 / 16:44