Ir para conteúdo
Fórum Script Brasil
  • 0

isnull retorna valor errado com where


brainrj

Pergunta

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.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Boa tarde Amigo...

Esse aí ta estranho mesmo!!! :.)

Mas o q pude perceber é q tá faltando o alias na clausula "where cod = 0". Não dá pra executar aqui, mas tenta identificar qual cod você está referenciado, para descartar erros. Se o cod for da loja, coloca "where l.cod = 0".

Não vejo mais nada de errado, pelo menos na sintaxe....

Testa aí depois você me fala, ok? Até mais.

Link para o comentário
Compartilhar em outros sites

  • 0

Putz... foi mal Amigo. Se a tabela "prestacoes" tivesse a coluna "cod" o sql dava erro de ambiguidade.

Seguinte... caso o "sum(vlrprest)" seja zero, o retorno será zero e não 1.

Acrescentei um case pra saber se a soma dá zero. Testa aí e me fala se dá certo.... :.)

select cod,

(select isnull(case (sum(vlrprest)) when 0 then 1 end,1)

from prestacoes p where p.codloja=l.cod and MONTH(dtvenc)=@m10 and year(dtvenc)=@a10)tot

from lojas l where cod = 0

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...