Ir para conteúdo
Fórum Script Brasil
  • 0

Duvida SQL


Bernard Luz

Pergunta

Galera, boa noite

estou com uma duvida no SQL e queria saber se seria possivel resolver

tenho a seguinte tabela:

faixa_etaria | Plano | Valor

00 - 18 | Pl01 | 100,00

00 - 18 | Pl02 | 200,00

00 - 18 | Pl03 | 300,00

19 - 23 | Pl01 | 200,00

19 - 23 | Pl02 | 300,00

19 - 23 | Pl03 | 400,00

queria que, se possivel, atravez do SQL ela ficasse assim:

faixa_etaria | Pl01 | Pl02 | Pl03

00 - 18 | 100,00 | 200,00 | 300,00

19 - 23 | 200,00 | 300,00 | 400,00

Desde já Agradeço a atenção de todos voces

Bernard

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Oi, Bernard

Dividi sua solução em etapas para que fique bem didático:

Etapa 1. Criação e carga da tabela de teste

insert into bernard(faixa_etaria, Plano, Valor)
    values ('00 - 18','Pl01',100.00),
    ('00 - 18','Pl02',200.00),
    ('00 - 18','Pl03',300.00),
    ('19 - 23','Pl01',200.00),
    ('19 - 23','Pl02',300.00),
    ('19 - 23','Pl03',400.00);
Etapa 2. Solução
SELECT faixa_etaria, SUM(IF(Plano='Pl01',Valor,0)) AS Pl01, SUM(IF(Plano='Pl02',Valor,0)) AS Pl02,
   SUM(IF(Plano='Pl03',Valor,0)) AS Pl03
FROM bernard
GROUP BY faixa_etaria;

Esta solução é chamada de pivot table. Ela apresenta problemas se a quantidade de planos for grande. Neste caso, uma solução melhor seria com o uso de uma storage procedure. Eu já publiquei uma aqui no forum e não faz muito tempo.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...