|
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
|
|
|
|
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 ?
|
|
|
|
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 ?
¿? AndrePaulo ¿?
|
|
|
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
|
|
|
|