Ir para conteúdo

Pergunta

  • Alunos
Postado

Olá pessoal, boa tarde!

Tenho uma dúvida quanto a uma condição que estou encontrando durante a realização de uma determinada consulta.

O banco de dados que estou utilizando é alimentado por informações que são preenchidas por usuários através de respostas em formulários. 

Estou executando uma consulta que retorna para cada coluna, os campos do formulário que foram preenchidos pelos usuários. Entretanto, este formulário específico foi revisado e acrescentado um novo campo. Dessa forma, quando executo a consulta em SQL, os dados obtidos correspondem apenas a um período de tempo em que todos os campos que busco estão inclusos atualmente no formulário. Porém, preciso que para aqueles campos que não existiam no formulário em períodos anteriores, a consulta retorne um valor NULL, por exemplo. É possível realizar esta configuração na linguagem SQL?

7 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
Postado
7 minutos atrás, Marcos Gentil disse:

Opa, tudo bem!

Obrigado pelo retorno! Utilizei LEFT JOIN e realmente trouxe valores para que este dados que não existe no banco. Porém, duplicou vários linhas da minha query.

 

Vai duplicar se houver mais de um id (resposta_oid) em alguma tabela, veja o exemplo abaixo:

image.png.c5f62b9f3aa259c468cb3b472a534a1d.png

 

Você não consegue exportar sua base mesmo que seja com dados limitados e também passar sua consulta pra analisar melhor?

  • Like 2
  • 0
  • Alunos
Postado (editado)

Suave @Marcos Gentil?

Geralmente nestes casos você pode usar a função COALESCE(). Ficaria algo do tipo:

https://www.w3schools.com/sql/func_sqlserver_coalesce.asp

Citar

SELECT COALESCE(minha_coluna, NULL) AS 'minha_coluna'
FROM minha_tabela;

Se quiser manda uma foto da tua base ou exemplo da consulta que você esta usando para ver o que pode ser otimizado.

Abs!

Editado por Joao Raulino
  • 0
  • Alunos
Postado

Opa, tudo bom! 

Obrigado pelo retorno, mas ainda não consegui trazer os dados como vazio na tabela.

Segue exemplo da consulta. O campo no formulário referente a "Resposta_2" foi adicionado no formulário em 20/03/2023. Dessa forma, não consigo conciliar na mesma tabela este campo (Resposta_2) com os demais, com o valor de data anterior a 20/03/2023.

image.png.17b7f2615fb503265b9c4bf660749b0b.png

  • 0
  • Alunos
Postado
Em 05/02/2024 em 13:55, Marcos Gentil disse:

Opa, tudo bom! 

Obrigado pelo retorno, mas ainda não consegui trazer os dados como vazio na tabela.

Segue exemplo da consulta. O campo no formulário referente a "Resposta_2" foi adicionado no formulário em 20/03/2023. Dessa forma, não consigo conciliar na mesma tabela este campo (Resposta_2) com os demais, com o valor de data anterior a 20/03/2023.

image.png.17b7f2615fb503265b9c4bf660749b0b.png

Olá Marcos, tudo bem?

Você precisa usar LEFT JOIN pra trazer tudo da tabela 1 (resposta1) e tudo da tabela 2 (resposta 2) mesmo as que não tiverem correspondência. Exemplo:

image.png.ab44c79e227152d7adbbb06a7a537b94.png

  • 0
  • Alunos
Postado

Opa, tudo bem!

Obrigado pelo retorno! Utilizei LEFT JOIN e realmente trouxe valores para que este dados que não existe no banco. Porém, duplicou vários linhas da minha query.

 

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...