Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Patrikr

Listar consulta

Recommended Posts

Alguém poderia me ajudar...
É o seguinte.
No meu BD tenho dua tabelas:
times e jogadores.
na tabela times tenho 5 times: timeA, timeB, timeC, timeD e timeE.
até aí beleza.
na tabela jogadores tenho vários jogadores e cada jogador pertence a um time, correto!
eu quero fazer uma consulta onde una as duas tabelas e aparece uma lista +/- assim:
timeA | timeB | timeC | timeD | timeE
jogador1 | jogador6 | jogador9 | jogador20 | jogador25
jogador2 | jogador11 | jogador16 |
jogador18 |
jogador17 |
como é feito essa consulta?

 

Vlww.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente algo assim (3 times)

select seq,
       max(case when time = 'a' then jogador else null end) timea,
       max(case when time = 'b' then jogador else null end) timeb,
       max(case when time = 'c' then jogador else null end) timec
from
(
select time , @rownum:=@rownum+1 seq ,nome_jogador
from jogadores
where time = 'a'
union all
select time , @rownum:=@rownum+1 seq ,nome_jogador
from jogadores
where time = 'b'
select time , @rownum:=@rownum+1 seq ,nome_jogador
from jogadores
where time = 'c'
) group by seq

@rownum:=@rownum+1 faz uma sequencia fajuta

o case separa por time

mas se houver um 4º time a sql precisa ser alterada todavia

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nem sei se este sql acima funciona pois não testei ....

 

 

Respondendo : Em sql puro não me ocorre.

 

Existem soluções como geradores de relatório que fazer referência cruzada , montagem de matrizes etc.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.