Ir para conteúdo
Fórum Script Brasil
  • 0

Montar String


Guest Sergio Luque

Pergunta

Guest Sergio Luque

Amigos , tentei uma porrada de maneira mas não consigo montar essa string , será que alguém poderia me ajudar .

Primeiro , como faço para disponibilizar para vocês essas tabelas , elas são pequenas

estou usando a string

SELECT [SUB QUESTOES].CODIGO, Count(RESPOSTAS.CODIGO) AS total
FROM [SUB QUESTOES] LEFT JOIN RESPOSTAS ON ([SUB QUESTOES].QUESTAO = RESPOSTAS.QUESTAO) AND ([SUB QUESTOES].CODIGO = RESPOSTAS.[SUB QUESTAO])
GROUP BY [SUB QUESTOES].CODIGO, [SUB QUESTOES].QUESTAO
HAVING ((([SUB QUESTOES].QUESTAO)=1));

para resgatar todos os codigos da tabela [sUB QUESTOES] independente se estiverem na tabela RESPOSTAS ou não , com as suas devidas quantidades , até aqui beleza , mas preciso incluir mais uma condição , e nesse ponto , os códigos que estão zerados somem , e eu preciso deles também , como fazer ?

Tentem incluir a condição RESPOSTAS.ID = 16 , aí somente aparece um CODIGO da [sUB QUESTOES]

Estrutura das tabelas

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Vou tentar deixar mais claro ainda.

Tenho duas tabelas : Caso alguém queira baixar , copiei nesse link Base de dados em access

(1) - [sUB QUESTOES] = 4 possíveis respostas que o participante pode dar em uma resposta formulada a ele.

(2) - [RESPOSTAS] = onde guardo o código do participante(ID), pergunta(QUESTOES) e a resposta escolhida([sUB QUESTOES])

Depois de todos os participantes terem respondido todas as perguntas , preciso saber quais são as respostas mais escolhidas , pesquiso então pergunta por pergunta e verifico a quantidade de respostas escolhidas para cada possível resposta , usando a string abaixo , obtenho os seguintes dados :

SELECT [SUB QUESTOES].CODIGO, Count(RESPOSTAS.CODIGO) AS total
FROM [SUB QUESTOES] LEFT JOIN RESPOSTAS ON ([SUB QUESTOES].QUESTAO = RESPOSTAS.QUESTAO) AND ([SUB QUESTOES].CODIGO = RESPOSTAS.[SUB QUESTAO])
GROUP BY [SUB QUESTOES].CODIGO, [SUB QUESTOES].QUESTAO
HAVING ((([SUB QUESTOES].QUESTAO)=1))
CODIGO(1) total(2) 17 6 18 0 19 1 20 1 (1) - Códigos de todas as possíveis respostas , independente se foram escolhidas ou não (2) - Total de cada possível resposta que foram escolhidas Usando a string acima , está funcionando legal , mas em um determinado momento , o usuário poderá filtrar a pesquisa , ele poderá pedir para que mostre somente as possíveis respostas de um determinado grupo de pessoas (identificadas pelo campo ID) , por isso preciso inserir nessa string a condição de ID=x ou ID=x1 ... só que se eu colocar essa condição , os códigos que estiverem zerados ( não escolhidos ) não aparecem , a maneira que estou inserindo essa nova condição é
SELECT [SUB QUESTOES].CODIGO, Count(RESPOSTAS.CODIGO) AS total
FROM [SUB QUESTOES] LEFT JOIN RESPOSTAS ON ([SUB QUESTOES].CODIGO = RESPOSTAS.[SUB QUESTAO]) AND ([SUB QUESTOES].QUESTAO = RESPOSTAS.QUESTAO)
WHERE (((RESPOSTAS.ID)=16))
GROUP BY [SUB QUESTOES].CODIGO, [SUB QUESTOES].QUESTAO
HAVING ((([SUB QUESTOES].QUESTAO)=1))

Link para o comentário
Compartilhar em outros sites

  • 0

Não sei se entendi bem mais vamos lá, para que você mostre o resulta do do modo como deseja você teria que no mínimo ter essa informação sua tábela como ela não existe a query não irá contar, na primeira consulta ele mostra os resultado pois a consulta principal (questão) tem dados para retornar, mesmo que não haja respostas ela deve retornar um resultado, já que pergunta existe... no segundo caso deveria estar retornando algo também nem que fosse um campo nulo, a não ser que não exista resposta para a questão 16 não exista, então em vez de fazer o critério com as respostas faça com o código da questão:

SELECT [sUB QUESTOES].CODIGO, Count(RESPOSTAS.CODIGO) AS total

FROM [sUB QUESTOES] LEFT JOIN RESPOSTAS ON ([sUB QUESTOES].CODIGO = RESPOSTAS.[sUB QUESTAO]) AND ([sUB QUESTOES].QUESTAO = RESPOSTAS.QUESTAO)

WHERE ((([sUB QUESTOES].CODIGO)=16))

GROUP BY [sUB QUESTOES].CODIGO, [sUB QUESTOES].QUESTAO

HAVING ((([sUB QUESTOES].QUESTAO)=1))

Isso deve resolver...

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado pela atenção mas não é bem isso que preciso , o [sUB QUESTOES].CODIGO não é a mesma coisa que RESPOSTAS.ID , o primeiro é o código das perguntas e o segundo é o código do participante. Mesmo assim obrigado , pelo menos você respondeu , não foi mal educado como o anterior que escreveu que n]ao inventaram bola de cristal. Cheguei a conclusão que terei que fazer duas pesquisas.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...