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))