Ir para conteúdo

Arquivado

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

TeixeiraRamos

Consulta Tabela de Referencia Cruzada

Recommended Posts

Consegui colocar os nomes dos continentes separado por colunas:

SELECT indica_ano_acumulado_ou_nao,  
nome_continente = "África" AS t_Africa,   
nome_continente = "América do Norte" AS t_Americadonorte,
nome_continente = "América do Sul" AS t_Americadosul,
nome_continente = "Antártica" AS t_Antartica,
nome_continente = "Ásia" AS t_Asia,
nome_continente = "Europa" AS t_Europa,
nome_continente = "Oceânia" AS t_Oceonia 
FROM qry_conta_continentes_anos;

Ocorre que em cada linha que contem um continente tem um campo (quant_continente) com os totais de cada continente.

Como vou pegar essa quantidade por continente de forma que fique respectiva coluna t_Africa, t_Americadonorte,..

Os exemplos que pesquisei sobre tb de referencia cruzada em MySql não consegui entender.

É extremamente pratico uma tb de Ref.Cruzada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

algo assim

SELECT indica_ano_acumulado_ou_nao,
sum(case when nome_continente = 'África' then 1 else 0 end) t_Africa,
sum(case when nome_continente  = 'América do Norte' then 1 else 0 end) t_Americadonorte,
...

FROM qry_conta_continentes_anos
group by indica_ano_acumulado_ou_nao;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Motta,

Muito obrigado pela atenção.

Ocorre que não fui feliz nas explicações.

Existe a View constando esses campos nesse link

http://www.informacaoteixeira.com.br/mostrar_motta.html

Porém desejava criar uma query para gerar isso:

Está no mesmo link

Motta, perdão por não ter informado corretamente o que desejava.

Como já informei acho extremamente prática e muito importante as tb Ref. Cruzada, mas com MySQL não estou conseguindo.

Tenho outras com meses e seria fundamental aprender uma e partir para outras.

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites


SELECT indica_ano_acumulado_ou_nao,

sum(case when nome_continente = 'África' then contardeindica_ano_acumuladoounao else 0 end) Africa,

sum(case when nome_continente = 'América do Norte' then contardeindica_ano_acumuladoounao else 0 end) Americadonorte,

...

FROM qry_conta_continentes_anos

group by indica_ano_acumulado_ou_nao;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para mais detalhes pesquise por PIVOT e MYSQL

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ficou assim:

SELECT indica_ano_acumulado_ou_nao,
SUM(CASE WHEN nome_continente = 'África' THEN ContarDeindica_ano_acumulado_ou_nao ELSE 0 END) Africa,
SUM(CASE WHEN nome_continente = 'América do Norte' THEN ContarDeindica_ano_acumulado_ou_nao ELSE 0 END) Americadonorte,
SUM(CASE WHEN nome_continente = 'América do Sul' THEN ContarDeindica_ano_acumulado_ou_nao ELSE 0 END) Americadosul,
SUM(CASE WHEN nome_continente = 'Antártica' THEN ContarDeindica_ano_acumulado_ou_nao ELSE 0 END) Antartica,
SUM(CASE WHEN nome_continente = 'Ásia' THEN ContarDeindica_ano_acumulado_ou_nao ELSE 0 END) Asia,
SUM(CASE WHEN nome_continente = 'Europa' THEN ContarDeindica_ano_acumulado_ou_nao ELSE 0 END) Europa,
SUM(CASE WHEN nome_continente = 'Oceânia' THEN ContarDeindica_ano_acumulado_ou_nao ELSE 0 END) Oceania,
FROM qry_conta_continentes_anos
GROUP BY indica_ano_acumulado_ou_nao;

Deu esse Erro:

1 queries executed, 0 success, 1 errors, 0 warnings

Query: SELECT indica_ano_acumulado_ou_nao, sum(case when nome_continente = 'África' then ContarDeindica_ano_acumulado_ou_nao else 0 en...

Error Code: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM qry_conta_continentes_anos
group by indica_ano_acumulado_ou_nao LIMIT 0, 10' at line 9

Execution Time : 0 sec
Transfer Time : 0 sec
Total Time : 0 sec

Compartilhar este post


Link para o post
Compartilhar em outros sites

Motta,

Tudo resolvido, digitei uma "," vírgula onde não deveria ter.

Com relação:

Para mais detalhes pesquise por PIVOT e MYSQL

Também te agradeço pela orientação. Achei um exemplo mas não foi bom.

Apresentou erro no SQLyog.

Vou procurar mais exemplos para praticar.

Sucesso para você.

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.