Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lucas Cardial

Múltiplo SELECT em tabelas diferentes

Recommended Posts

Olá amigos, bem estou com um problema que já estou a um bom tempo procurando solução.

Entendam: Possuo duas tabelas no SQL Server 2014, uma nomeada como "Gosto_musical" e a outra com "Descricao_Musical".

 

A Tabela Gosto musical está estruturada desta fora:

 

id, chave primária;

nomePessoa, char(128);

estado, char(2);

gostoMusicalD, int;

 

A Coluna `gostoMusicalID` vai guardar o ID da descrição da musical que está na tabela `Descricao_Musical`, que está estruturada desta forma:

 

gostoMusicalD, chave primaria;

descricao, char(128);

 

Agora eu preciso fazer um select para saber o gosto musical de cada estado, logo o que me veio em mente foi criar esta query:

USE Banco;
DECLARE @Estado;
SET @Estado = TO;
SELECT descricao FROM Descricao_Musical WHERE gostoMusicalID = (SELECT GostoMusicalID FROM Gosto_Musical WHERE estado = @Estado);

O que ocorre é que pode conter 10 Registros para o estado do TO, e na minha "lógica" ele iria selecionar todas as descrições com base na quantidade dos IDs retornados.

Porém o seguinte erro me ocorre:

Mensagem 512, Nível 16, Estado 1, Linha 2
A subconsulta retornou mais de 1 valor. Isso não é permitido quando a subconsulta segue um =, !=, <, <= , >, >= ou quando ela é usada como uma expressão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um estado tem mais de uma pessoa logo mais de um gosto musical , você tem de montar uma query que faça um JOIN entre as duas tabelas e some por GROUP BY quais os gostos musicais dd cada estado , podendo até depois obter o maior.

 

Seu modelo preve apenas um gosto musical por pessoa, é isto que ocorre , eu tenho mais de uma gosto musical ?


http://msdn.microsoft.com/pt-br/library/ms177673.aspx

 

 

http://technet.microsoft.com/en-us/library/ms191517%28v=sql.105%29.aspx

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um estado tem mais de uma pessoa logo mais de um gosto musical , você tem de montar uma query que faça um JOIN entre as duas tabelas e some por GROUP BY quais os gostos musicais dd cada estado , podendo até depois obter o maior.

 

Seu modelo preve apenas um gosto musical por pessoa, é isto que ocorre , eu tenho mais de uma gosto musical ?

http://msdn.microsoft.com/pt-br/library/ms177673.aspx

 

 

http://technet.microsoft.com/en-us/library/ms191517%28v=sql.105%29.aspx

Bem, sobre a possibilidade de vários gostos musicais, não pensei sobre isso...

Na verdade este post foi a nível de exemplo, reproduzir as mesmas necessidades porém com um caso diferente.

Todavia Motta, agradeço ao esforço.

Sou novato na área, mas pesquisei a sua referência e realmente o JOIN Resolveu meu caso.

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.