Fórum Select usando Max e Group by #186829
07/10/2003
0
Bom é o seguinte ja postei varios topicos semelhantes a esse
no qual acho que nao fui muito claro na questao
entao agora simplificando
como faço para obter a maior nota fiscal da [b:fe5181eecc]tabela arqnfis[/b:fe5181eecc],
seguida dos campos data, valor e cliente
quem pode me ajudar nesse select
Macario
Curtir tópico
+ 0Posts
07/10/2003
Wsantos
Meu nome é Washington, acho que já conversamos antes, assim que entrei no grupo.
Se o Campo da NotaFiscal for Number, o select seria:
Select NotaFiscal, Data, Valor, Cliente from arqnfis
Where NotaFiscal = (Select Max(NotaFiscal) from arqnfis)
Boa Sorte.
Gostei + 0
07/10/2003
Macario
olha so esse select
e se vc puder da uma olhada nos outros topicos que eu ja postei
Gostei + 0
08/10/2003
Adilsond
with QryTemp do begin if Active then Close; DatabaseName := DM.TArqEmpr.DatabaseName; SQL.Clear; SQL.Add(´select C.v1 as Cod,´); SQL.Add(´ C.v2 as Cliente,´); SQL.Add(´ C.v4 as Municipio,´); SQL.Add(´ C.v5 as UF,´); SQL.Add(´ C.v12 as Contato,´); SQL.Add(´ C.v13 as Telefone,´); SQL.Add(´ R.v1 as codrep,´); SQL.Add(´ R.v2 as Representante,´); SQL.Add(´ C.Datacad,´); SQL.Add(´ N.Dnf as Data,´); SQL.Add(´ N.nnf as Nota,´); SQL.Add(´ N.vlr * N.qte + n.ipi as Valor´); SQL.Add(´from arqclie C,´); SQL.Add(´ arqprnf N,´); SQL.Add(´ arqrepr R´); SQL.Add(´where (C.v1 = N.ncl)´); SQL.Add(´ and (R.v1 = N.nre)´); SQL.Add(´ and (N.nnf = (select max(NF.nnf)´); SQL.Add(´ from arqprnf NF´); SQL.Add(´ where NF.ncl = C.v1´); SQL.Add(´ and (C.v1 between :cli1 and :cli2)´); SQL.Add(´ and (N.nre between :rep1 and :rep2)´); SQL.Add(´order by R.v1,´); SQL.Add(´ C.v1´); Params[0].AsInteger := StrToInt(mdtCliIni.Text); Params[1].AsInteger := StrToInt(mdtCliFim.Text); Params[2].AsInteger := StrToInt(mdtRepIni.Text); Params[3].AsInteger := StrToInt(mdtRepFim.Text); Open; end;
Obs: Voce pediu ´retornar a ultima nota de cada cliente´ então o comando:
SQL.Add(´ and (N.nnf = (select max(NF.nnf)´); SQL.Add(´ from arqprnf NF´); SQL.Add(´ where NF.ncl = C.v1´);
retornará a última NF do cliente, mas se esta NF não pertencer ao representante
atual, ela não será mostrada.
Se voce desejar a última NF do cliente para cada representante modifique para:
SQL.Add(´ and (N.nnf = (select max(NF.nnf)´); SQL.Add(´ from arqprnf NF´); SQL.Add(´ where NF.ncl = C.v1´); SQL.Add(´ and NF.nre = R.v1´);
Acho que é isto. Faça o teste.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)