[firebase-br] Dúvida em SUM() com Group By

Marlon ETI marlon em esferati.com.br
Ter Abr 10 04:41:26 -03 2012


Boa noite galera!

Tenho a seguinte query:

SELECT
    a.co_associado, a.nu_contrato, a.no_associado,
    a.dt_cadastro, a.dt_adesao, a.dt_reativacao, a.dt_cancelamento,
    (SELECT SUM(pa.vl_contratado) AS VL_TITULAR FROM TB_PRODUTOS_ASSOCIADOS
pa WHERE pa.ds_ativo = :ativo AND pa.co_associado = a.co_associado) as
vl_titular,
    (SELECT SUM(pa.vl_contratado) AS VL_DEPENDENTE FROM
TB_PRODUTOS_DEPENDENTES pa WHERE pa.ds_ativo =  :ativo AND pa.co_associado
= a.co_associado) as vl_dependente
  FROM TB_ASSOCIADOS a
 WHERE a.dt_adesao between :dataini and :datafim and a.dt_cancelamento is
null

Onde tenho por retorno
Código Associado, Número do Contrato, Nome do Associado, Data de Cadastro,
Data de Adesão, Data de Reativação, Data de Cancelamento, Valor Total dos
Benefícios do Titular e Valor de Total dos Benefícios do Dependente.

Estou tentando por linda ainda somar o valor total do contrato somando o
valor total de benefícios do titular + o valor total de benefícios do
dependente da seguinte forma:

SELECT
    a.co_associado, a.nu_contrato, a.no_associado,
    a.dt_cadastro, a.dt_adesao, a.dt_reativacao, a.dt_cancelamento,
    (SELECT SUM(pa.vl_contratado) AS VL_TITULAR FROM TB_PRODUTOS_ASSOCIADOS
pa WHERE pa.ds_ativo = :ativo AND pa.co_associado = a.co_associado) as
vl_titular,
    (SELECT SUM(pa.vl_contratado) AS VL_DEPENDENTE FROM
TB_PRODUTOS_DEPENDENTES pa WHERE pa.ds_ativo =  :ativo AND pa.co_associado
= a.co_associado) as vl_dependente,
    SUM(
         (SELECT SUM(pa.vl_contratado) AS VL_TITULAR FROM
TB_PRODUTOS_ASSOCIADOS pa WHERE pa.ds_ativo = :ativo AND pa.co_associado =
a.co_associado)
         +
         (SELECT SUM(pa.vl_contratado) AS VL_DEPENDENTE FROM
TB_PRODUTOS_DEPENDENTES pa WHERE pa.ds_ativo =  :ativo AND pa.co_associado
= a.co_associado)
       ) AS VL_CONTRATO
  FROM TB_ASSOCIADOS a
 WHERE a.dt_adesao between :dataini and :datafim and a.dt_cancelamento is
null
 ORDER BY a.co_associado

Porém está dando a seguinte mensagem de erro:

Invalid expression in the select list(not contained in either an aggregate
function or the GROUP BY clause).

Já tentei agrupar por várias formas e ainda não obtive sucesso.

Alguém teria alguma idéia a respeito para solucionar essa questão???
Uma vez que o objetivo é gerar uma relatório...

Agradeço a todos desde de já!!!

Abraços :D !!!



-- 
Marlon Conceição
Analista de Sistemas
msn : marloncs em live.com

Favor levar em conta o meio-ambiente antes de imprimir este e-mail.
Por favor tenga en cuenta el medioambiente antes de imprimir este e-mail.
Please consider your environmental responsibility before printing this
e-mail.



Mais detalhes sobre a lista de discussão lista