Como fazer o Select

SQL Server

23/09/2013

Bom dia pessoal

Estou com um problema para resolver em SQl Server, tenho estas 3 tabelas, onde tenho 2 perguntas a serem respondidas como mostra o exemplo abaixo. O propósito é de que com as informações das tabelas pergunta e alternativa eu consiga somar e obter o resultado mostrado abaixo.

Teria como fazer isto?

As estruturas das tabelas são apenas com campos do tipo Integer e String, para facilitar. Apenas existe um relacionamento entre a tabela pergunta e alternativa, A tabela votos não conversa com ninguém.

Como seria os comandos SELECT para retornar as respostas da pergunta 01 e 02.

Alguém poderia me ajudar? Seria muito grato a todos.

Valnei


Tabela Pergunta

CodPergunta Pergunta
001 Qual a sua cor preferida?
002 Qual o seu time favorito?


Tabela Alternativa

CodAlternativa Alternativa CodPergutna
001 Preto 001
002 Azul 001
003 Roxo 001
004 Palmeiras 002
005 Corinthians 002

É uma tabela do tipo temporária que na verdade acumula somente o código da alternativa, pois ao final ele vai somar e dar o resultado de acordo com as 2 questões abaixo.

Tabela Votos
CodVoto CodAlternativa
001 001
002 002
003 001
004 003
005 001
006 001


Perguntas:

1. Total de votos por alternativa

O resultado esperado seria este: Selecionando a pergunta Qual a sua cor favorita?

Alternativa Quantidade de votos
Preto 004
Azul 001
Roxo 003

2. Total de votos por pergunta

Resultado Esperado.

Qual a sua cor favorita? teve 8 votos (veja o exemplo acima)
Qual o seu tive favorito? Teve 2 votos


Vlw

Valnei Reis

Valnei Reis

Curtidas 0

Respostas

Alex Lekao

Alex Lekao

23/09/2013

Ola Valnei, bom dia!!!

nao sei se entendi bem.

Mas testa com este codigo

select
   p.Alternativa,
   count(a.codalternativa)
from pergunta as p
inner join alternativa as a on a.codpergunta = p.codpergunta
group by p.alternativa


Espero ter ajudado.

Abraco.

Alex - Lekao
GOSTEI 0
Valnei Reis

Valnei Reis

23/09/2013

Obrigado Alex

Vou executar este código e retorno para dizer se esta tudo certo.

Obrigado

Valnei
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

23/09/2013

Ola Valnei, bom dia!!!

nao sei se entendi bem.

Mas testa com este codigo

select
   p.Alternativa,
   count(a.codalternativa)
from pergunta as p
inner join alternativa as a on a.codpergunta = p.codpergunta
group by p.alternativa


Espero ter ajudado.

Abraco.

Alex - Lekao


sempre me perco com esses selects.
GOSTEI 0
Rodrigo Lacerda

Rodrigo Lacerda

23/09/2013

Mariana, mas é tão simples!!

mas pra não se perder eu recomendo sempre identar ...
GOSTEI 0
Alex Lekao

Alex Lekao

23/09/2013

com certeza a identacao ajuda muito...

teve inclusive um topico no forum que se falava a respeito de identacao.

eu particularmente qdo vejo alguns codigos do pessoal que nao esta identado, honestamente fico confuso e nao consigo ajudar legal ou analisar bem.

embora nao tenha tanto conhecimento assim... sou meio novato... rsrsrsr
GOSTEI 0
Rodrigo Lacerda

Rodrigo Lacerda

23/09/2013

Exatamente Alex,

eu particularmente não consigo entender algumas bagunças que o pessoal faz, quando comecei a programar a primeira coisa que meu professor me fez fazer foi identar tudo e sempre me dando bronca ai meio que fiquei traumatizado ! haahaha...

mas de fato, um código bem identado , organizado fica muito mais fácil resolver problemas e também evita-os.
GOSTEI 0
Alex Lekao

Alex Lekao

23/09/2013

com ctz...

eu nao sou proramador, nem gosto de programar...

qdo comecei a mexer com banco... senti a necessidade de fazer identacao nos codigos... e tendo fazer o maximo possivel... nunca recebi um treinamento nem orientacao especifica a respeito... rsrsr
GOSTEI 0
Rodrigo Lacerda

Rodrigo Lacerda

23/09/2013

heheheh show...

eu recebi na faculdade, prof gente boa demais, até hoje muito amigo meu.
GOSTEI 0
Alex Lekao

Alex Lekao

23/09/2013

ai eh da hora...

eu tenho um que eh da hora tbm...

estou fazendo faculdade so agora... rssrsr

o cara eh muito bom e da aula de banco de dados...

pelo que vejo o cara manja muito de muita coisa... e eh bem aprofundado e camarada simples...
GOSTEI 0
Rodrigo Lacerda

Rodrigo Lacerda

23/09/2013

Entendi.. show,

mas cade esse Valnei que não responde! rs
GOSTEI 0
Valnei Reis

Valnei Reis

23/09/2013

Grande Alex.

Ainda não tive tempo suficiente para testar o código do amigo informado anteriormente, acredito que até amanhã devo dar uma parecer sem falta.

Caso vc tenha algo a acrescentar ao código ou ao meu problema eu agradeço

Valnei
GOSTEI 0
Alex Lekao

Alex Lekao

23/09/2013

entao Valnei,

Eu nao fiz teste nem nada com relacao ao seu problema, apenas escrevi pensando nos dados que vc informou.

Para fazermos um teste mais efetivo teria que fazer um insert de dados na base, e eu infelizmente nao tive tempo de fazer isso tambem... rsrsr

eu aqui o tempo eh muito escasso... rsrsr

mas vamos aguardar para ver se da certo...
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

23/09/2013

Mariana, mas é tão simples!!

mas pra não se perder eu recomendo sempre identar ...


o problema não é isso e sim os codigos mesmo.
GOSTEI 0
Roniere Almeida

Roniere Almeida

23/09/2013

Mariana, existe um otimo livro, o nome é Fundamentos em T-SQL.
GOSTEI 0
Alex Lekao

Alex Lekao

23/09/2013

Mariana, mas é tão simples!!

mas pra não se perder eu recomendo sempre identar ...


o problema não é isso e sim os codigos mesmo.


eu tambem me perco com os codigos as vezes... rsrsr
GOSTEI 0
Rodrigo Lacerda

Rodrigo Lacerda

23/09/2013

Ah sim..

Mas sintaxe é mais prática mesmo, com o tempo você grava.
GOSTEI 0
Mariana Carvalho

Mariana Carvalho

23/09/2013

praticando sempre, fica mais facil, mas nem sempre é possivel.
GOSTEI 0
Alex Lekao

Alex Lekao

23/09/2013

Nem me fale... rsrsr

falta muito para mim eh tempo... rsrsr
GOSTEI 0
POSTAR