Ir para conteúdo

Arquivado

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

kainna

Agrupando dados sem relacionamento

Recommended Posts

Boa tarde galera!

Estou com um enorme problema:

 

Fiz a inserção de uns dados em uma tabela no SQL 2005, com os seguintes campos e valores ilustrativos:

Campo1     Campo2       Campo3
12362/3    5            valorx
12362/3    6            descriçãoy
00021/7    1            demonstração
00547/7    17           teste
00547/7    1            funcionalidade

 

 

O que ocorre é o seguinte: não posso ter chave primária, pois os dados podem se repetir nas 3 colunas.

O que preciso é: agrupar os dados do Campo1 e exibir o maior valor e a sua descricao correspondente referente ao Campo3, de forma que o resultado seja:

 

Campo1     Campo2       Campo3
12362/3    6            descriçãoy
00021/7    1            demonstração
00547/7    17           teste

 

 

Já tentei o seguinte comando:

 

Select Campo1, max(Campo2), Campo3
from nometabela
Group by (Campo1)

 

 

Esse comando SQL agrupa o campo1 corretamente, porém não busca os valores corretos correspondentes referente ao campo2 e campo3.

Ficando assim:

 

12362/3    5            valorx
00021/7    1            demonstração
00547/7    17           teste

 

 

 

Alguem pode me ajudar???

Gente por favor me ajudemmmmmmmmmmmmmm!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Subselect com max ...

 

Select Campo1, Campo2, Campo3
from nometabela
where campo2 = (select max(campo2)
               from nometabela nometabela2
               where nometabela2.Campo1 = nometabel2.Campo1)

 

... não posso ter chave primária ...

 

Agora reveja isto, quase sempre indica problemas na modelagem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigada pela ajuda, mas o problema é o seguinte: os dados estao dentro de uma mesma tabela.

Não tenho duas tabelas, somente 1.

Compartilhar este post


Link para o post
Compartilhar em outros sites

outro exemplo usando apenas uma tabela:

 

select t.campo1, t.campo2, t.campo3
from tabela t
inner join (select campo1, max(campo2) from tabela group by campo1) t2
on t.campo1 = t2.campo1
and t.campo2 = t2.campo2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde galera!

Estou com um enorme problema:

 

Fiz a inserção de uns dados em uma tabela no SQL 2005, com os seguintes campos e valores ilustrativos:

Campo1     Campo2       Campo3
12362/3    5            valorx
12362/3    6            descriçãoy
00021/7    1            demonstração
00547/7    17           teste
00547/7    1            funcionalidade

 

 

O que ocorre é o seguinte: não posso ter chave primária, pois os dados podem se repetir nas 3 colunas.

O que preciso é: agrupar os dados do Campo1 e exibir o maior valor e a sua descricao correspondente referente ao Campo3, de forma que o resultado seja:

 

Campo1     Campo2       Campo3
12362/3    6            descriçãoy
00021/7    1            demonstração
00547/7    17           teste

 

 

Já tentei o seguinte comando:

 

Select Campo1, max(Campo2), Campo3
from nometabela
Group by (Campo1)

 

 

Esse comando SQL agrupa o campo1 corretamente, porém não busca os valores corretos correspondentes referente ao campo2 e campo3.

Ficando assim:

 

12362/3    5            valorx
00021/7    1            demonstração
00547/7    17           teste

 

 

 

Alguem pode me ajudar???

Gente por favor me ajudemmmmmmmmmmmmmm!

 

 

Coloca o distinct depois do select.

Tipo assim select distinct campo1, campo2 from tabela1 :P

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.