Redundância de Informações

Firebird

01/02/2007

Pessoal

Estou querendo mostrar em uma grid as informações de contas a pagar, Sintético( Resumido). Existem mais de um registro lançado para o mesmo fornecedor, mesma data de vencto, mesmo nr docto e mesmo assim, aparece repetido com a sql que eu fiz. O que eu quero é que acumule valores. eu fiz assim:

SELECT SUM(CP.VLPAGAR_CONTAPAGAR) AS VLRPAGAR, SUM(CP.VLPAGO_CONTAPAGAR) AS VLRPAGO,
CF.FAN_CLI_FOR AS FORNECEDOR, CP.DTVENC_CONTAPAGAR as Dt_Vencto, CP.DTQUIT_CONTAPAGAR as Dt_Quitacao
FROM CONTAPAGAR CP
INNER JOIN CLI_FOR CF ON
(CP.COD_CLI_FOR = CF.COD_CLI_FOR)

GROUP BY CP.VLPAGAR_CONTAPAGAR,
CP.VLPAGO_CONTAPAGAR,
CF.FAN_CLI_FOR,
CP.DTVENC_CONTAPAGAR,
CP.DTQUIT_CONTAPAGAR

ORDER BY
CF.FAN_CLI_FOR,
CP.VLPAGAR_CONTAPAGAR,
CP.VLPAGO_CONTAPAGAR,
CP.DTVENC_CONTAPAGAR,
CP.DTQUIT_CONTAPAGAR

Estou usando interbase 6.0 + Delphi 7 + Conexão Dbexpress

Fico no aguardo

Rogério


Rogeranalista

Rogeranalista

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

01/02/2007

tente assim:
SELECT
  CF.FAN_CLI_FOR AS FORNECEDOR,
  CP.DTVENC_CONTAPAGAR as Dt_Vencto,
  CP.DTQUIT_CONTAPAGAR as Dt_Quitacao,
  SUM(CP.VLPAGAR_CONTAPAGAR) AS VLRPAGAR,
  SUM(CP.VLPAGO_CONTAPAGAR) AS VLRPAGO
FROM
  CONTAPAGAR CP
INNER JOIN CLI_FOR CF ON
  (CP.COD_CLI_FOR = CF.COD_CLI_FOR)
GROUP BY
  CF.FAN_CLI_FOR,
  CP.DTVENC_CONTAPAGAR,
  CP.DTQUIT_CONTAPAGAR
ORDER BY
  CF.FAN_CLI_FOR,
  CP.DTVENC_CONTAPAGAR,
  CP.DTQUIT_CONTAPAGAR
não ponha no agrupamento os campos usados em funções de agregamento, como SUM(), MIN(), MAX(), etc.... não faz sentido.


GOSTEI 0
POSTAR