Fórum Copy(Campo,1,1) em SQL ??? #55514

17/03/2006

0

Olá porgramadores,
Como faço para determinar os valores a serem somados em um plano de contas? O campo de Valor é único, não tem campo para Débito ou Crédito. O sistema entende que créditos são todas as contas iniciadas por ´1´ e débitos todas as contas iniciadas por ´2´. As contas são tipo 1.1.00.001 ou 2.2.01.001.

A instrução SQL:
with qSoma do begin
   Close;
   SQL.Text := ´Select Sum(Valor) as pEntradas from CaixaLanca where Copy(Conta,1,1) = "1" ´;
   Open;
end;
ShowMessage(FormatFloat(´#,.00´, qSoma.FieldByName(´pEntradas´).AsCurrency));


Más está dando erro!

Qualquer ajuda será muito vem vinda.

Augusto.


Zangado

Zangado

Responder

Posts

17/03/2006

Denis

Olá,

Não existe a função copy no sql. Qual o banco de dados está usando ? Existem funções para isso. Cada banco trabalha de uma forma.
Por exemplo. no sql server seria assim :

Select Sum(Valor) as pEntradas from CaixaLanca where substring(Conta,1,1) = ´1´


Responder

Gostei + 0

17/03/2006

Angelnoa

Em Informix, por exemplo, vc poderia fazer assim:
´Select SUM(Valor) as pEntradas from CaixaLanca where Conta[1,1] = "1" 



Responder

Gostei + 0

17/03/2006

Acacio

Existe sim, Coloca assim
substring(campo from 1 for 4)
por exemplo

Exemplo
select subtring(nomCli from 1 for 10)
from tabcli

Vai aparecer 10 caracteres no nome do cliente


Responder

Gostei + 0

17/03/2006

Martins

Existe sim, Coloca assim substring(campo from 1 for 4) por exemplo Exemplo select subtring(nomCli from 1 for 10) from tabcli Vai aparecer 10 caracteres no nome do cliente


A solução com [b:29b8c1ea9b]Substring[/b:29b8c1ea9b] funciona sim, agora, temos q ver qual o banco de dados do colega.


Responder

Gostei + 0

17/03/2006

Sremulador

será que tem pro firebird alguma coisa assim ?


Responder

Gostei + 0

17/03/2006

Denis

Para firebird use :

Substr(campo,1,1)


Responder

Gostei + 0

18/03/2006

Thomaz_prg

Para firebird use : Substr(campo,1,1)


Isso se você quiser usar UDF´s (que acompanhm o Firebird) senão pode usar a função nativa mesmo:

select substring(campo from 1 to 1) from tabela



Responder

Gostei + 0

18/03/2006

Martins

[quote:d4f27c85d8]Para firebird use : Substr(campo,1,1)


Isso se você quiser usar UDF´s (que acompanhm o Firebird) senão pode usar a função nativa mesmo:

select substring(campo from 1 to 1) from tabela
[/quote:d4f27c85d8]

verdade amigo [b:d4f27c85d8]thomaz_prg[/b:d4f27c85d8], acho mais negócio usar a função nativa.

valew!!!


Responder

Gostei + 0

30/12/2006

Mmoreira

O correto nao seria:

select substring(campo from 1 for 1) from tabela



Responder

Gostei + 0

04/01/2007

Thomaz_prg

Verdade.... :lol:

Desculpem a falha. :oops:


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar