GARANTIR DESCONTO

Fórum Como calcular esta SQL #265475

15/01/2005

0

Olá!
Tudo bem?

Dentro da propriedade SQL do componente IBQuery coloquei este comando

select a.*, b.* from cad_recebimento a, cad_recebimento_mov b


Deixei os Fields em branco.

Fiz esta SQL
with IBQuery1 do
begin
Close;
SQL.Clear;
SQL.Add(´select A.CODIGO, A.TITULO, A.PARCELA, A.DOCUMENTO, A.SERIE, A.DT_EMIS, A.DT_VCTO, A.VLR_TIT,´);
SQL.Add(´SUM(B.VLR_PAGO) PAGO,´);
SQL.Add(´MAX(B.DT_MOVIMENTO) MOVIMENTO´);
SQL.Add(´From CAD_RECEBIMENTO A´);
SQL.Add(´Left Join CAD_RECEBIMENTO_MOV B´);
SQL.Add(´On(A.CODIGO = B.CODIGO and A.TITULO = B.TITULO and A.PARCELA = B.PARCELA)´);
SQL.Add(´GROUP BY A.CODIGO, A.TITULO, A.PARCELA, A.DOCUMENTO, A.SERIE, A.DT_EMIS, A.DT_VCTO, A.VLR_TIT´);
Open;
end;


O campo VLR_PAGO não pode ser somente somado. Existe um outro campo que é LIQ_EST que diz que o movimento foi uma liquidação ou um estorno, portanto dependendo do valor deste campo eu vou ter de somar ou subtrair para achar o valor pago.

Tentei fazer um campo calculado, mas dá erro no SQL.
if ibquery1LIQ_EST.Value = ´Estorno´ then
begin
IBQuery1TOT_PAGO.Value:= IBQuery1TOT_PAGO.Value - ibquery1VLR_PAGO.Value;
end;
if ibquery1LIQ_EST.Value = ´Liquidação´ then
begin
IBQuery1TOT_PAGO.Value:= IBQuery1TOT_PAGO.Value + ibquery1VLR_PAGO.Value;
end;




Melhor explicando, eu tenho uma tabela com os títulos e outra com os movimentos. Na tabela com os títulos eu pego os dados dos títulos e na tabela de movimento eu somo as parcelas pagas ou subtraio as parcelas que foram estornadas.

Neste caso ainda terá mais alguns problemas.

Teria que mostrar os títulos pagos e os títulos que estão em aberto testando o resultado do SUM de uma tabela com o valor do título que está em outra tabela.

Fazer o cálculo de dias em atraso com o resultado de MAX de uma tabela com a data de vencimento que está em outra tabela.

Também com o resultado de MAX mostrar os títulos que já foram pagos e os títulos que estão em aberto.

Usando Delphi 7 Interbase 6

Será que alguém poderia me dizer como resolver algum destes problemas?

Desde já agradeço a ajuda recebida.


Joao_schroeder

Joao_schroeder

Responder

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

Aceitar