Fórum Erro em Select com Group By #185576
01/10/2003
0
[b:c0875e8af6]with[/b:c0875e8af6] QryTemp [b:c0875e8af6]do[/b:c0875e8af6]
[b:c0875e8af6]begin[/b:c0875e8af6]
Close;
DatabaseName := DM.TArqEmpr.DatabaseName;
SQL.Clear;
SQL.Add(´select´);
SQL.Add(´C.v1 as Cod, C.v2 as Cliente, C.v4 as Municipio, C.v5 as UF,´);
SQL.Add(´C.v12 as Contato, C.v13 as Telefone,Max(N.nfi), N.dat as Data´);
SQL.Add(´from arqclie C, arqnfis N´);
SQL.Add(´Where C.v1 = N.cli´);
SQL.Add(´Group by n.nfi´);
ExecSQL;
Open;
[b:c0875e8af6]end;[/b:c0875e8af6]
Preciso pegar a ultima Nota (N.Nfi) do cliente apenas.
Macario
Curtir tópico
+ 0Posts
01/10/2003
Joilson_gouveia
mude para:
SQL.Add(´GROUP BY C.v1, C.v2, C.v4, C.v5,´);
SQL.Add(´C.v12, C.v13, N.dat´);
Gostei + 0
01/10/2003
Macario
Joilson
Olha só eu fiz isso mas é o seguinte, com isso ele nao devia me retornar apenas um registro por cliente, sendo esse registo o com maior valor na nota fiscal?
with QryTemp do
begin
Close;
DatabaseName := DM.TArqEmpr.DatabaseName;
SQL.Clear;
SQL.Add(´select´);
SQL.Add(´C.v1 as Cod, C.v2 as Cliente, C.v4 as Municipio, C.v5 as UF,´);
SQL.Add(´C.v12 as Contato, C.v13 as Telefone,Max (N.nfi) as Nota, N.dat as Data´);
SQL.Add(´from arqclie C, arqnfis N´);
SQL.Add(´Where C.v1 = N.cli´ );
SQL.Add(´Group by C.v1, C.v2, C.v4, C.v5, C.v12,C.v13, N.dat´);
SQL.Add(´order by c.v1´);
ExecSQL;
Open;
end;
Ou entao como poderia fazer isso
Gostei + 0
01/10/2003
Joilson_gouveia
Ex.:
Nome UF Data Valor
João - DF - 01/01/2001 - R$ 100,00
João - DF - 01/02/2001 - R$ 50,00
Se quisermos pegar O MAIOR VALOR pago por João [b:ab1f58714e]não deveremos[/b:ab1f58714e] incluir na consulta a coluna DATA, pois tem valores distintos e o SQL
os traria.
Verifique em sua consulta que campos poderiam estar trazendo valores distintos e veja a possibilidade de não trazer essa coluna.
Gostei + 0
01/10/2003
Macario
Gostei + 0
01/10/2003
Macario
Outra coisa como eu mostro os outros campos que tem valores diferentes tipo data, valor tendo como exemplo o select acima
O Joilson, ou alguem poderia e esclarecer...isso?
Gostei + 0
01/10/2003
Marlon Spiess
Gostei + 0
01/10/2003
Macario
Outra duvida colegas do código abaixo como faço para mostrar a quantidade de dias passados da data da nota, em outro campo que nao existe tipo ´Inativo´
try
with QryTemp do
begin
Close;
DatabaseName := DM.TArqEmpr.DatabaseName;
SQL.Clear;
SQL.Add(´select´);
SQL.Add(´C.v1 as Cod, C.v2 as Cliente, C.v4 as Municipio, C.v5 as UF,´);
SQL.Add(´C.v12 as Contato, C.v13 as Telefone, [b:cdbd36c29a]Max (N.Dat) as Data[/b:cdbd36c29a],Max(N.nfi) as Nota´);
SQL.Add(´from arqclie C, arqnfis N´);
SQL.Add(´Where (C.v1 = N.cli) and´ );
SQL.Add(´(c.v1 between :cli1 and :cli2)´);
SQL.Add(´Group by C.v1, C.v2, C.v4, C.v5, C.v12,C.v13´);
SQL.Add(´order by c.v1´);
Params[0].Value := mdtCliIni.Text;
Params[1].Value := mdtCliFim.Text;
ExecSQL;
Open;
end;
Gostei + 0
01/10/2003
Marlon Spiess
Caso a duvida seja outra, favor esclarecer melhor.
Gostei + 0
02/10/2003
Macario
Outra coisa é como mostrar tambem no grid o valor da ultima nota sendo que ele muda?
Gostei + 0
02/10/2003
Marlon Spiess
Qualquer duvida é só retornar.
Boa sorte.
Marlon
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)