[firebase-br] select com totalização

Nivaldo Martins nivaldomart em gmail.com
Qui Abr 28 14:07:09 -03 2011


Bom, agora ele decide o que fazer se quer filtrar, se não quer... Se puder
detalhar melhor Ronan...

Em 28 de abril de 2011 12:14, Paulo Portella
<pportellaa.firebase em gmail.com>escreveu:

> O SQL tá muito bom.
>
> Mas pelo que entendi ele quer uma listagem para comparar com percentuais...
> isso ele não vai ter se tiver que listar Prova por Prova.
>
> Não é ?
>
> Vida de americano é assim: iPhone, iPod, iPad, iMac….
> Já a de brasileiro é assim:IPTU, IPVA, ICMS, IPI etc
>
>
> Em 28/04/2011 10:28, Nivaldo Martins escreveu:
>
>  Cara, acredito que seu problema seja mais de lógica do que de sql:
>>
>> Vejamos
>>
>> Você deseja saber a relação entre acertos e número de questões, deseja
>> saber
>> o número de acertos de cada questão
>>
>> primeiro, colocar as tabelas com vírgulas vai dar problemas. Você deve
>> fazer
>> join
>>
>> Ele também não reconhece os apelidos no cálculo. Vc vai ter que repetir o
>> count na divisão
>>
>> A divisão está invertida
>>
>> O group by pelo campo acertou pode te dar problemas
>>
>> Talvez fique mais ou menos assim:
>>
>> Select
>>    r.numero_questao,
>>    r.Acertou,
>>    count(r.numero_questão) as total_questao,
>>    count(r.acertou) as total_acerto,
>>    (count(r.acertou)/count(r.numero_questão)*100 as percentual
>> from
>>    respostas r join provas p on (r.id_prova = p.Id)
>> where
>>    p.Id = :Prova_que_voce_quer
>> group by
>>    r.numero_questao
>> Order by desc percentual
>> Talvez possua erros ainda, mas já está mais claro do que o que você fez.
>> Testa aí
>>
>> Em 28 de abril de 2011 10:05, Ronan<ronan em antarescomputadores.com.br
>> >escreveu:
>>
>>  Amigos,
>>> possivelmente essa select para os mais experientes é simples mas, como eu
>>> estou iniciando nessa área, não consegui fazer.
>>> O problema é o seguinte:
>>> Tenho duas tabelas, uma de provas e  outra de respostas com os campos:
>>>
>>> resposta.ID_Prova,  resposta.Numero_Questao, resposta.Acertou
>>>
>>> Acertou recebe "S" ou "N".
>>>
>>> Eu preciso saber em ordem decrescente, para cada prova, as questões que
>>> foram mais erradas em valores absolutos e percentual.
>>>
>>> O melhor que eu consegui fazer foi o seguinte:
>>>
>>> Select
>>>  resposta.numero_questao, resposta.Acertou,
>>> count(resposta.numero_questão)
>>> as total_questao, count(resposta.acertou) as total_acerto,
>>> (Total_acerto/Total_questao) as percentual
>>>
>>> from
>>>  respostas,provas
>>> where
>>>  resposta.ID_Prova = provas.ID
>>> group by
>>> resposta.numero_questao, resposta.acertou
>>>
>>> Order by desc percentual
>>>
>>> bem, deu tudo errado, nem executa, dá erro de sql. Eu tentei outras
>>> opções,
>>> olhei na internet, mas não consegui.
>>> Por isso, peço aos amigos uma ajuda nesse código.
>>> muito obrigado a todos
>>> Ronan
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> ______________________________________________
>>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>>> http://www.firebase.com.br/fb/artigo.php?id=1107
>>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>>
>>>  ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>> Para saber como gerenciar/excluir seu cadastro na lista, use:
>> http://www.firebase.com.br/fb/artigo.php?id=1107
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista