GARANTIR DESCONTO

Fórum Mais uma query #356773

07/04/2008

0

Amigos, tenho essa query quie é bem simples. O que eu preciso é agrupar por vendedores mesmo quendo nã há vendas, deveria vir em branco. Acontece, que, se eu agrupar, por vendedor vem null, se não agrupar, vem 0(no lugar do null). O que eu quero é que me liste todos os vendedores, mesmo sem venda(null). A query está abaixo:

SELECT CP.CD_FUNC, COALESCE(SUM((CP.VL_BRUTO + CP.VL_DESC_ACR)),0)´DIA´ FROM TB_SAC_NF_CAPEADOR CP WHERE ST_CANC = 0 AND ((SR_NF = ´D2´) OR ((SR_NF = ´B2´) AND (CD_CFOP = 6102))) AND DT_ENT BETWEEN ´2008-Apr-01´ AND ´2008-Apr-07´ GROUP BY CP.CD_FUNC

Da forma que está, não está respeitando o COALESCE, ou seja, vem tudo null. Se tiro o GROUP BY, aí funciona, mas tem que agrupar por vendedor. Alguém tem alguma idéia?


Paulo

Paulo

Responder

Posts

07/04/2008

Ara.es

Crie uma tabela temporaria salve os dados do select sem o grupo nela e depois faça o agrupamento na tabela temporaria. acho q dara certo, pois ao adicionar na tabela temporaria estara adicionando o valor 0 (Zero) onde esta NULL e quando. e na segunda query nao tera mais valores nulos.


Responder

Gostei + 0

08/04/2008

Paulo

Mas ara.es, o agrupamento é necessário para informar qual vendedor tem vendas, ou seja, deve aparecer as vendas de cada um listada na grid.


Responder

Gostei + 0

08/04/2008

Paulo

Amigos, desculpem-me pela carência de informações. Faltou eu dizer a você sobre a tabela de funcionário. É nela que eu deveria fazer um JOIN também. Eu resolvi assim: Fiz um Sum com as vendas do dia, fiz outro select com Sum das devolicoes e fiz outro com Sum com as vendas acumuladas, aí no select principal, eu chamei cada um desses select individuais(tabelas virtuais), aí funcionou. Faltou ´olhar´ mais.


Responder

Gostei + 0

08/04/2008

Emerson Nascimento

publique aí... quem sabe podemos melhorar algo...

porque eu creio que seja necessário apenas uma instrução....


Responder

Gostei + 0

08/04/2008

Ara.es

Ola Paulo, na minha sugestao nao disse para fazer o select sem o group. o que falei era para fazer separado... como vc disse ao fazer o group by o COALESCE não estava sendo respeitado. entao o que deixei como ideia foi vc fazer primeiro o select sem o group, pois assim o COALESCE será respeitado e vc tera na coluna ´DIA´ o valor zero onde deveria estar null.. ai entao vc faria o group emcima dos dados ja com os valores corretos.. flw qualquer coisa poste ai..


Responder

Gostei + 0

09/04/2008

Fknyght

Veio, eu tenho um sistema que faz algo parecido, tenho uma tabela de plano de contas e outra de lancamentos, veja a sql que eu fiz


select pl.cod_receita, pl.descricao, 
    (select sum(valor) as TotalMes from Lancamentos L1 where pl.cod_receita = L1.cod_receita and L1.Data >= :D1  and L1.Data <= :D2 ) As TotalMes

from PlanoContas Pl

order by pl.cod_receita


Você pode tentar alguma coisa parecida. Ha eu uso MySql ok


Responder

Gostei + 0

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

Aceitar