Group ou Union

Delphi

18/01/2015

Bom Dia a todos!

Tenho um relatório, Fechamento de Venda, onde faço o agrupamento dos seguintes campos, conforme código abaixo:

//UTILIZO ESTE COMANDO NO FORMULARIO ONDE INFORMO A DATA PARA FILTRO
with repfechamentosaida.query1 do
begin
repfechamentosaida.Query1.Close;
repfechamentosaida.Query1.SQL.Clear ;
repfechamentosaida.query1.SQL.Add('select TIPOPAGAMENTO, SUM(VAL_TOT_NOTA) AS VAL_TOT_NOTA');
repfechamentosaida.query1.SQL.Add('from SAIDA_FECHAMENTO');
repfechamentosaida.query1.SQL.Add('where DATA between :inicio AND :fim AND FECHAMENTOTIPO =:codigo '); // linha para atender as condições
repfechamentosaida.query1.SQL.Add('GROUP BY TIPOPAGAMENTO');
repfechamentosaida.query1.SQL.Add('ORDER BY TIPOPAGAMENTO');
repfechamentosaida.query1.ParamByName('inicio').AsDateTime := datainicial1.DateValue ; // preenche o parametro 'inicio'
repfechamentosaida.query1.ParamByName('fim').AsDateTime := datafinal1.DateValue ; // preenche o parametro 'fim'
repfechamentosaida.query1.ParamByName('codigo').Text := '2'; // preenche o parametro 'codigo'
repfechamentosaida.query1.Open;
repfechamentosaida.Query1.Last;
repfechamentosaida.TOTAL1.Caption := 'TOTAL (' + IntToStr(repfechamentosaida.query1.RecordCount)+ ')';
end;

ABAIXO RESULTADO DO RELATÓRIO
TIPO_PAGAMENTO VALOR
Cheque.................1.000,00
Boleto...................1.200,00
Cartão Credito........ 2.000,00
Dinheiro................5.000,00
Cartao Débito........3.000,00

Até aí tudo bem, funciona direitinho. O que esta ocorrendo que desta forma meu relatório esta ficando incompleto, por que no lancamento destes valores tem outro campo chamado TIPO_ENTRADA, VALOR, por que ocorre de em alguns tipo de pagamento o cliente da uma entrada como mostrado abaixo:

TIPO_PAGAMENTO VALOR / TIPO_ENTRADA VALOR
Cheque.................1.000,00...DINHEIRO..........500,00
Boleto...................1.200,00...DINHEIRO..........200,00
Cartão Credito....... 2.000,00
Dinheiro.................5.000,00
Cartao Débito.........3.000,00

E assim por diante.
O que preciso é fazer não sei se é agrupamento dos dois campos e uni-los em um só para que no relatório mostre da seguinte forma

TIPO_PAGAMENTO VALOR
Cheque..................500,00 (DEDUZIU POR QUE 500,00 FOI EM DINHEIRO)
Boleto....................1.000,00 (DEDUZIU POR QUE 200,00 FOI EM DINHEIRO)
Cartão Credito.........2.000,00
Dinheiro.................5.700,00 (SOMOU POR QUE HOUVE ENTRADA TOTAL EM DINHEIRO DE 700,00)
Cartao Débito..........3.000,00

Delphi7
Banco Firebird
Componente IBQuery
Quick Report

Desde já agradeço a todos.
Hederson Finco

Hederson Finco

Curtidas 0
POSTAR