Ir para conteúdo

POWERED BY:

Arquivado

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

carol311

Consulta usando group by

Recommended Posts

Oi gente....to tentando fazer a seguinte consulta:select Max(data), cidade, numicone, minima, maxima from servPrevisaoTempo where cidade in ('São Paulo', 'Rio de Janeiro', 'Brasília') group by cidade order by cidadeMas o sql da erro. Informa que eu tenho q ter as colunas numicone, minima, maxima em um função de agregação ou na clausula group by. Minha dúvida é: Como fazer para retornar colunas que não estão em nenhuma função de agregação e nem na clausula group by? O que eu quero fazer é o seguinte trazer as colunas cidade, numicone, minima, maxima da tabela servPrevisaoTempo só que eu só quero a última data que foi gravada. Alguém me ajuda???Obrigada :blink:

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá Carol,

 

uma solução seria fazer um inner com ela mesma com o agrupamento somente da cidade e max(data)

ficaria assim:

set nocount ondeclare @servPrevisaoTempo table (data datetime, cidade varchar(50), numicone int, minima int, maxima int)insert into @servPrevisaoTempo (data, cidade, numicone, minima, maxima) values ('2006-01-04', 'São Paulo', 1, 23, 40) insert into @servPrevisaoTempo (data, cidade, numicone, minima, maxima) values ('2006-01-03', 'São Paulo', 1, 20, 30)insert into @servPrevisaoTempo (data, cidade, numicone, minima, maxima) values ('2006-01-01', 'Rio de Janeiro', 1, 24, 30)insert into @servPrevisaoTempo (data, cidade, numicone, minima, maxima) values ('2006-01-02', 'Rio de Janeiro', 1, 21, 36)insert into @servPrevisaoTempo (data, cidade, numicone, minima, maxima) values ('2006-01-05', 'Manaus', 1, 22, 33)insert into @servPrevisaoTempo (data, cidade, numicone, minima, maxima) values ('2006-01-02', 'Manaus', 1, 19, 44)select SPT.data, SPT.cidade, SPT.numicone, SPT.minima, SPT.maximafrom @servPrevisaoTempo as SPTinner join (select max(data) as data, cidade from @servPrevisaoTempo		where cidade in ('São Paulo', 'Rio de Janeiro', 'Brasília')		group by cidade, numicone) as MaiorDataon	MaiorData.data = SPT.Data and MaiorData.cidade = SPT.cidadewhere SPT.cidade in ('São Paulo', 'Rio de Janeiro', 'Brasília')

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caracas............funcionou!!!!!!!!!!!!!!!!Muito obrigada http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Agora ja sei...toda vez que eu precisar de algo parecido vou usar um inner join com a mesma tabela. Brigadão...vivendo e aprendendo.VALEU!!!!!!!!!!!!

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

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.