Jump to content
Fórum Script Brasil
  • 0

Montar String


Guest Sergio Luque
 Share

Question

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 to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.8k
    • Total Posts
      646.6k
×
×
  • Create New...