USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  MAX & GROUP BY / SQL
Mateus
AMADORA
PT - PORTUGAL
Postada em 23/07/2004 12:48 hs            
Andre
 
Já tinha respondido esta questão no VBmania e pense~i que você não sabia como usar o "MAX" e o "GOUP BY", afinal não era o caso, pois você não consegue usar mas neste caso.
 
Bom, isto não funciona porque a ligação das duas tabelas é feita pelo campo "numerosd", por isso ele vai buscar tudo.
 
Então faça o seguinte:
Guarde este valor numa variável
SELECT MAX(principal.revisao) as Revisao
 
Depois adapte este SQL (que fiz mesmo no access por falta de tempo):
 
SELECT principal.revisao, principal.numerosd, principal.estagio, principal.descricao, principal.situacao, controle.data, controle.datafinal, principal.tipo, controle.sigla, controle.antiga, principal.original
FROM principal INNER JOIN controle ON principal.numerosd = controle.numerosd
GROUP BY principal.revisao, principal.numerosd, principal.estagio, principal.descricao, principal.situacao, controle.data, controle.datafinal, principal.tipo, controle.sigla, controle.antiga, principal.original
HAVING (((principal.revisao)=[ultima revisao]))
substutua )=[ultima revisao] pela variável
 
Aqui eu tinha:
001,002,003 e ele só retornou os dados da 003.
 
Espero ter ajudado
 
João Mateus

 
 
 
     
Mateus
AMADORA
PT - PORTUGAL
ENUNCIADA !
Postada em 23/07/2004 12:51 hs            
Substitua:
SELECT MAX(principal.revisao) as Revisao
por
SELECT MAX(principal.revisao) as Revisao
FROM principla
   
Mateus
AMADORA
PT - PORTUGAL
ENUNCIADA !
Postada em 23/07/2004 13:07 hs            
Já agora se o
 
 "WHERE principal.numerosd LIKE controle.numerosd "
 
tem mesmo que ser o elemento fornecido então:
 
O seguinte SQL também funciona:
 
SELECT Max(principal.revisao) AS MaxDerevisao, principal.numerosd, principal.estagio, principal.descricao, principal.situacao, controle.data, controle.datafinal, principal.tipo, controle.sigla, controle.antiga, principal.original
FROM principal INNER JOIN controle ON principal.numerosd = controle.numerosd
GROUP BY principal.numerosd, principal.estagio, principal.descricao, principal.situacao, controle.data, controle.datafinal, principal.tipo, controle.sigla, controle.antiga, principal.original
HAVING (((principal.numerosd) Like "40"));
 
A questão aqui, pelos vistos,está mesmo no JOIN
 
João Mateus
 
   
Andrepaulo
SÃO PAULO
SP - BRASIL
Postada em 23/07/2004 13:08 hs            
isso seria para eu pegar caso fosse somente 1 registro certo Mateus ? só que o meu problema está ai ... porque eu nao estou buscando uma SD só ... eu tenho váááárias...
estou populando via DATA o FLEX...
ou entao eu teria q fazer isso linha a linha do banco de dados ... certo ? ficaria mto pesado nao acha ?
 
 
 
     
Andrepaulo
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 23/07/2004 13:15 hs            
o problema eh q eu nao tenho só um documento !!!
vamos supor .. eu posso ter a SD 1 ... tem 000 .. 001... e 002 ...
e ter a SD 2 tem ... 000... 001... 002 ... 003 ...
eu pegando só o max sem distinguir ele vai me retornar soh o SD 2 003 ... sendo que ele tinha que me retornar o SD 1 002 .. e o SD 2 003 ...
entendeu ?
 

Emoções ¿? AndrePaulo ¿? Emoções
   
Semmer
não registrado
ENUNCIADA !
Postada em 23/07/2004 13:19 hs   
entao, no exemplo do Mateus voce usa "select numerosd, max(revisao) from principla group by numerosd". Isto vai te retornar SD 1 com 002 e SD 2 com 003
 
   
Página(s): 2/3     « ANTERIOR    PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página