Ajuda em SQL no firebird 2.5

Firebird

04/07/2013

Olá pessoal

Fiz o select abaixo porém está dando a mensagem:

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

Eu sei que isso é devido eu não ter colocado os fields VALOR e PERCENTUAL porém quando eu faço isso o select també ira agrupar por estes, tem alguma forma de eu fazer este sql sem este agrupamento?!, pois tenho que agrupar apenas pela tabela e vendedor.

vlw

SELECT a.ite_tabela_preco,
a.ped_vendedor as vendedor,
sum(COALESCE(a.ite_total_tab_precofinal,0)) as VL_PRECOFINAL,
sum(COALESCE(a.ite_total_tab_icmst,0)) as VL_ICMSST,
sum(COALESCE(a.ite_total_tab_ipi,0)) as VL_IPI,
sum(COALESCE(a.ite_frete,0)) as VL_FRETE,
sum(COALESCE(a.ite_seguro,0)) as VL_SEGURO,

(case
when COALESCE(b.VALOR,0) > 0 then
sum(COALESCE(a.ITE_QUANTIDADE,0)) * b.VALOR
else
sum(COALESCE(a.ITE_TOTAL_TAB_PRECOFINAL,0) * (b.PERCENTUAL / 100))
END) as VL_PRECOFINAL_COMISSAO

FROM vw_relatorio a
left join COMISSAO_TABELA b on a.ITE_CODIGO_PRODUTO = b.PRODUTO and
a.PED_VENDEDOR = b.VENDEDOR

WHERE a.ped_vendedor = 101 and
a.ITE_DATA_DIGITACAO between '05/01/2013' and '05/31/2013'

GROUP BY 2,1
Ricardo Matarazzo

Ricardo Matarazzo

Curtidas 0

Respostas

Lg Embarcadero

Lg Embarcadero

04/07/2013

Olá, não entendi o seu group by, mas quanto a este, obrigatoriamente quando usado deve conter todos os campos contidos no select. Você esta fazendo isso? Qual resultado realmente esta querendo ter?
GOSTEI 0
POSTAR