Usuário com melhor resposta
Retorno de Valores de uma coluna está triplicando as linhas de consulta

Pergunta
-
Bom dia...!
Meu caso é o seguinte:
- Eu criei três perguntas no sistema e essas perguntas no retorno da consulta no SQL estão triplicando as linhas, me disseram que eu tenho que criar um sub-select para os campos, eu tentei mas não consegui.
Estou montando da forma abaixo:
============================================================================
select
(CASE WHEN Pergunta like 'MERCKITS' THEN Resposta END) AS RespMercKits),
(SELECT (CASE WHEN Pergunta like 'NOME DA OBRA' THEN Resposta END) AS RespNomeObra),
(SELECT (CASE WHEN Pergunta like 'NOME DO CLIENTE' THEN Resposta END)AS RespNomeCliente)
from
dbo.Orcamento o INNER JOIN dbo.OrcamentoResposta ocr
ON o.CodOrcamento_ID = ocr.CodOrcamento_id
where
o.CodOrcamento_ID = 142936
===============================================================
Como posso fazer para que as respostas fiquem em apenas uma linha, pois estão ficando assim...?
_____________________________________________
ResMercKits | RespNomeObra | RespNomeCliente
NÃO | NULL | NULL
NULL | AQUALIFE | NULL
NULL | NULL | RIVALDO DIAS
______________________________________________
GOSTARIA QUE RETORNASSE COMO ABAIXO:
ResMercKits | RespNomeObra | RespNomeCliente
NÃO | AQUALIFE | RIVALDO DIAS
- Editado Gilguitar quinta-feira, 3 de outubro de 2013 14:16
Respostas
-
Bom dia,
Experimente dessa forma:
select max(CASE WHEN Pergunta = 'MERCKITS' THEN Resposta END) AS RespMercKits, max(CASE WHEN Pergunta = 'NOME DA OBRA' THEN Resposta END) AS RespNomeObra, max(CASE WHEN Pergunta = 'NOME DO CLIENTE' THEN Resposta END) AS RespNomeCliente from -- ...
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Gilguitar quinta-feira, 3 de outubro de 2013 15:08
Todas as Respostas
-
Você está fazendo 3 selects diferente nesta consulta, Gilguitar.
Tente desta forma:
SELECT CASE WHEN Pergunta like 'MERCKITS' THEN Resposta END AS RespMercKits, CASE WHEN Pergunta like 'NOME DA OBRA' THEN Resposta END AS RespNomeObra, CASE WHEN Pergunta like 'NOME DO CLIENTE' THEN Resposta END AS RespNomeCliente FROM dbo.Orcamento o INNER JOIN dbo.OrcamentoResposta ocr ON o.CodOrcamento_ID = ocr.CodOrcamento_id where o.CodOrcamento_ID = 142936
Leonardo D'Amato
-
Bom dia,
Experimente dessa forma:
select max(CASE WHEN Pergunta = 'MERCKITS' THEN Resposta END) AS RespMercKits, max(CASE WHEN Pergunta = 'NOME DA OBRA' THEN Resposta END) AS RespNomeObra, max(CASE WHEN Pergunta = 'NOME DO CLIENTE' THEN Resposta END) AS RespNomeCliente from -- ...
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Gilguitar quinta-feira, 3 de outubro de 2013 15:08
-