Problemas com Sql

Delphi

30/12/2003

:lol:
O banco de dados é paradox
O que quero é uma sql(inserida através de uma query) que me retorne apenas os registro o que obedeçam a condição da data ser a maior, portanto deve ser utilizado com a função Max(), porém sei só como aparecer apenas um campo, quanto a ordem não é importante pois só há uma data maior, não tem como ter mais de uma data maior, a não ser que hajam mais de um registro obedecendo os critérios, mas mesmo assim por exemplo terei dois ou mais registros mas com a mesma data (não é necessária a ordenação de uma data repetida!)
o que estou tentando fazer é pegar o último serviço de um cliente, mas os serviços podem ser cadastrados fora de ordem ou seja o da data maior pode ter sido digitado antes, por tanto preciso que me retorne somente os registros que a data seja maior, será que fui claro ?

select MAX(saida) as Saida from servicos
where nom_cli like ´EMRESA¬´
no exemplo acima aparece somente o registro que tem a data maior exatamente como eu quero, porém gostaria que os outros campos aparecessem também(Descricao, nom_cli, entrada, pagto, valor), pois da forma que o sql foi montado somente aparece o campo Saida

Se eu colocar
select MAX(saida) as Saida, nom_cli, descricao, pagto, valor from servicos
where nom_cli like ´EMRESA¬´
é exibido a seguinte mensagem de erro:
GROUP BY is required when both aggregate and non-aggregate fields are used in result set.

se coloco
select A.*, MAX(saida) from Servicos A
where A.nom_cli like ´ADEMILTON¬´
a mesma mensagem é exibida, o que eu poderia estar fazendo de errado ?


Carlosdarienzo

Carlosdarienzo

Curtidas 0

Respostas

Carlosrm

Carlosrm

30/12/2003

calosdarienzo,

select nom_cli, descricao, pagto, valor, MAX(saida) as Saida
from servicos
Group By nom_cli, descricao, pagto, valor

carlosrm


GOSTEI 0
Adilsond

Adilsond

30/12/2003

select t1.saida,
       t1.nom_cli,
       t1.descricao,
       t1.pagto,
       t1.valor
from servicos t1
where t1.saida = (select max(t2.saida)
                  from servicos t2
                  where t2.nom_cli = t1.nom_cli)
  and t1.nom_cli like "EMRESA¬"



GOSTEI 0
POSTAR