Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

brainrj

[Resolvido] isnull retorna valor errado com where

Recommended Posts

olá pessoal... estou com problemas numa query... não consigo entender

 

select cod,
(select isnull(sum(vlrprest),1) from prestacoes p where p.codloja=l.cod and MONTH(dtvenc)=@m10 and year(dtvenc)=@a10)tot
from lojas l
retorna:

cod tot

0 1

1 1

101 1008

102 40

999 1

 

se eu usar a clausula where:

select cod,
(select isnull(sum(vlrprest),1) from prestacoes p where p.codloja=l.cod and MONTH(dtvenc)=@m10 and year(dtvenc)=@a10)tot
from lojas l where cod = 0
retorna:

cod tot

0 0

 

tot era pra retornar 1 pois esse codigo faz parte de uma query onde o resultado da consulta eu uso como divisor... e ele retornando zero da erro ao dividir por zero.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não seria o caso de usar o inner ou o left join na sua consulta? Algo como....

 

select l.cod, isnull(sum(p.vlrprest),1) As Total
from lojas l
left join prestacoes p on (l.cod = p.codloja)
where l.cod = 0 and MONTH(dtvenc)=@m10 and year(dtvenc)=@a10
group by l.cod
order by l.cod

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.