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

SELECT QUE RETORNA REGISTROS MESMO SEM RELAÇÃO


Jonathan Kloh

Pergunta

Preciso de ajuda na formação de uma consulta, 

tenho 4 tabelas (comissão, pessoa, pedido, pedidoitem). Então preciso trazer todas as pessoas e seus valores de metas mesmo que não tenha ainda valores em pedido. fiz um select o problema que ele não retorna a pessoa quando não tem pedido pra essa pessoa.

Quero que ele retorne por exemplo: nome da pessoa/ meta/ valoralcançado

meu código está assim até agora:

SELECT
  [PESSOA].[Fantasia] AS REPRESENTANTE,
  [METAS].[MetaValorMinimoBase] AS META,
  SUM(ISNULL(PDV_PedidoItemValorTotal,0)) AS Valor


FROM COM_METAS
  FULL JOIN PESSOA ON METAS.MetaRepCod = PESSOA.Codigo
  LEFT JOIN PEDIDO ON PESSOA.Codigo = PEDIDO.PedidoRepresentante
  LEFT JOIN PEDIDOITEM ON PEDIDO.PedidoCodigo = PEDIDOITEM.PedidoCodigo

WHERE PEDIDO.PedidoExcluido = 'N' and
PEDIDO.PedidoTipoMovimentoCodigo IN (1,5,6) AND
PEDIDO.PedidoSituacao IN ('A','B','O','T','E')AND
PEDIDO.PedidoDataEmissao BETWEEN '01/06/2018'  AND '05/06/2018'

GROUP BY
  [PESSOA].[Fantasia],
  [METAS].[MetaValorMinimoBase]

Order by [PESSOA].[Fantasia]

RETORNO :

JOÃO      |60000    |697569
PEDRO     |240000   |1374417
MARIA     |60000    |67995
FRANCISCO |200000   |2376976
ZÉ        |NULL     |23423
ROMARIO   |20000    |NULL

Quero que me traga as outras pessoas que tem metas mesmo que não tenha valor.

Ele até retorna as pessoas com meta null, mas quero que retorne também os que tem valor(dos pedidos) null ou 0 no caso.

 Resumindo: preciso que o select me traga também as pessoas e meta que não tem pedidos ainda, mas tem cadastro retornando o valor como null. Que o código assim me traz todas as pessoas e meta que contem pedido. A ideia é me retornar todas as pessoas que tem metas e valores que já alcançou mesmo que não tenha valor.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Sim existe as duas possibilidades. Quase consegui o que desejo rsrsrs, retirei o where e trouxe quase oque quero só por um detalhe, ele está retornando todos as pessoas com metas + o valor das pessoas que não tem meta o problema que não está mostrando o nome dessas pessoas que a meta ficou null. Ficou como esse exemplo no primeiro campo.

null      |  null  |697569
PEDRO     |240000   |1374417
MARIA     |60000    |67995
FRANCISCO |200000   |2376976
ZÉ        |NULL     |23423
ROMARIO   |20000    |NULL

Resolvido! Retirei o where e fiz a condição direto no join e adicionei um OR na junção com a pessoa para me trazer os nomes quando tiver tanto relação com a meta como com o pedido.

SELECT

  PESSOA.Fantasia AS REPRESENTANTE,
  METAS.MetaValorMinimoBase AS META,
  COALESCE(SUM(PEDIDOITEM.PedidoItemValorTotal),0) AS Valor
 
FROM PEDIDO
  INNER JOIN PEDIDOITEM ON PEDIDO.PedidoCodigo = PEDIDOITEM.PedidoCodigo
AND 
PEDIDO.PedidoExcluido = 'N' and
PEDIDO.PedidoTipoMovimentoCodigo IN (1,5,6) AND
PEDIDO.PedidoSituacao IN ('A','B','O','T','E')AND
PEDIDO.PedidoDataEmissao BETWEEN '01/06/2018'  AND '05/06/2018'
  FULL JOIN METAS ON PEDIDO.PedidoRepresentante = METAS.MetaRepCod
  LEFT JOIN PESSOA ON  METAS.MetaRepCod = PESSOA.Codigo or
  PEDIDO.PedidoRepresentante = PESSOA.Codigo



GROUP BY
  PESSOA.Fantasia,
  METAS.MetaValorMinimoBase,

Order by PESSOA.Fantasia

 

Editado por Jonathan Kloh
detalhe2
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
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...