SELECT COM SUBQUERY

SQL Server

05/02/2014

Bom Dia Pessoal,

Estou fazendo um SELECT em duas tabelas para depois fazer um INSERT em outra tabela.
Nesta tabela que vou fazer o INSERT tenho dois campos QUANTIDADE_MAQUINA1, PESO_MAQUINA1, QUANTIDADE_MAQUINA2, PESO_MAQUINA2.
Mas no meu SELECT não estou conseguindo trazer essas informações com SUBQUERY.

SELECT campo1,campo2,campo3,campo4,
(SELECT Quantidade FROM refugoOP WHERE refugoOP.Maquina = 'OND' ) AS QTD_OND,
(SELECT Peso FROM refugoOP WHERE refugoOP.Peso = 'OND' ) AS PESO_OND,


FROM Tabela1 INNER JOIN Tabela2 ON Tabela1.CampoEmComum = Tabela2.CampoEmComum


GROUP BY campo1,campo2,campo3,campo4
ORDER BY campo1 DESC

Está me retornando o seguinte erro:
A subconsulta retornou mais de 1 valor. Isso não é permitido quando a subconsulta segue um =, !=, <, <= , >, >= ou quando ela é usada como uma expressão.

Qual outra forma posso trazer essas informaçõe separadas?

Obrigado.

Marcio Morando

Marcio Morando

Curtidas 0

Respostas

Leandro Chiodini

Leandro Chiodini

05/02/2014

Isso ocorre pq em um dos dois subselects
esta retornando mais de um registro.
ou nos dois.

Pode ser que voce tenha na tabela refugoOP
mais de um registro com maquina = 'OND'
ou refugoOP = 'OND'


Faz um select simples para ver se traz mais de um registro


SELECT Quantidade FROM refugoOP WHERE refugoOP.Maquina = 'OND'  /Veja se traz mais de um registro

SELECT Peso FROM refugoOP WHERE refugoOP.Peso = 'OND'  /Veja se traz mais de um registro

GOSTEI 0
Marcio Morando

Marcio Morando

05/02/2014

Bom Dia,

Sim, está trazendo mais de um registro.

Tentei fazer com CASE WHEN e deu certo!

Muito Obrigado.
GOSTEI 0
POSTAR