Ir para conteúdo

Arquivado

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

Yuri Cavazin

Selecionar maior valor em um campo em duas tabelas distintas

Recommended Posts

Olá pessoal, tudo bem?

 

Tenho duas tabelas com os mesmos campos.

Porém, eu gostaria de selecionar o maior valor no campo "ano_2010" entre as duas tabelas.

 

Um exemplo de query que eu tentei, mas não deu certo é:

 

select UF, DISTRIBUICAO, max(ano_2010) from cerveja,agua where UF LIKE "Sao Paulo"

O erro é:

 

Error Code: 1052. Column 'UF' in field list is ambiguous

 

Eu entendo que o erro diz que a coluna UF é compartilhada entre as duas tabelas, e que 'ele' não sabe qual delas listar, mas eu também não sei, eu quero a tabela que tenha o maior valor em ano_2010, seja da cerveja, ou da água.

 

Obrigado,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente um UNION montando uma tabela virtual das duas tabelas.

 

Faça a MAX desta tabela virtual.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque o nome da tabela que deseja selecionar antes da coluna UF Ex:

 

select cerveja.UF, DISTRIBUICAO, max(ano_2010) from cerveja,agua where cerveja.UF LIKE "Sao Paulo"

Neste caso você estará selecionando e comparando apenas a coluna UF da tabela cerveja.

Compartilhar este post


Link para o post
Compartilhar em outros sites
--UNION 
select 'CERVEJA' BEBIDA,UF, DISTRIBUICAO, ano_2010  from cerveja  where UF LIKE "Sao Paulo"
UNION ALL
select 'AGUA' BEBIDA,UF, DISTRIBUICAO, ano_2010  from  agua where UF LIKE "Sao Paulo"

--MAX

 


SELECT BEBIDA,MAX(ANO_2010) MAX
FROM
(
select 'CERVEJA' BEBIDA,UF, DISTRIBUICAO, ano_2010  from cerveja  where UF LIKE "Sao Paulo"
UNION ALL
select 'AGUA' BEBIDA,UF, DISTRIBUICAO, ano_2010  from  agua where UF LIKE "Sao Paulo"
) VIRTUAL
GROUP BY BEBIDA

 

 




			
		

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.