7vidas 0 Denunciar post Postado Dezembro 20, 2006 Boa tarde pessoal. Eu tenho um sistema de questinário, no qual existe uma tabela de pergunta, resposta, risco e risco_resposta. No final do questionário o usuário recebe seu resultado apartir da pontuação de cada risco. Em uma listagem de riscos, eu preciso mostrar para o administrador do sistema a pontuação máxima possível em cada risco, lembrando-se que, uma pergunta pode ter apenas uma resposta. Como faço para pegar a resposta que contêm a maior pontuação em um risco de cada pergunta e somar esses valores. Segue abaixo a estrutura de tabelas que estarão envolvidas na busca: TABLE `qv_opcao` ( `cod_opcao` int(11) NOT NULL auto_increment, `cod_pergunta` int(11) NOT NULL default '0', `descricao` varchar(250) NOT NULL default '', `ordem` int(11) NOT NULL default '0', PRIMARY KEY (`cod_opcao`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;TABLE `qv_pergunta` ( `cod_pergunta` int(11) NOT NULL auto_increment, `pergunta` varchar(250) NOT NULL default '', `ordem` smallint(6) NOT NULL default '0', PRIMARY KEY (`cod_pergunta`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;TABLE `qv_risco` ( `cod_risco` int(11) NOT NULL auto_increment, `nome` varchar(50) NOT NULL, `ordem` tinyint(3) NOT NULL default '0', PRIMARY KEY (`cod_risco`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;TABLE `qv_risco_opcao` ( `cod_risco_opcao` bigint(11) NOT NULL auto_increment, `cod_risco` int(11) NOT NULL default '0', `cod_opcao` int(11) NOT NULL default '0', `peso` int(11) NOT NULL default '0', PRIMARY KEY (`cod_risco_opcao`)) ENGINE=MyISAM DEFAULT CHARSET=latin1; O resultado que quero: RISCO || MÁXIMO POSSIVEL Matematica || 40 Português || 20 Compartilhar este post Link para o post Compartilhar em outros sites
Wagner Bianchi 0 Denunciar post Postado Dezembro 21, 2006 Primeira coisa, se organize e tenha em mãos os critérios de como achar tais valores com uma regra conceitual (Regra de Negócios). Segundo, no MySQL estão disposíveis várias funções agregadas como SUM() e MAX(), que no seu caso serão bastante úteis. Leia isto: http://dev.mysql.com/doc/refman/5.0/en/gro...-functions.html ...este link tem as funções de agregação com alguns exemplos práticos e de aplicação. Você somente terá que saber inglês para se virar com essa página. No mais, qualquer dúvida, continue postando e mesmo que alguém te dê algo pronto, busque entender...pode ser que você enferente este problema novemente em um futuro bem próximo. Abraço!! Feliz Natal... http://forum.imasters.com.br/public/style_emoticons/default/natal_smile.gif Compartilhar este post Link para o post Compartilhar em outros sites
7vidas 0 Denunciar post Postado Dezembro 21, 2006 Boa tarde Wagner. Eu conheço bem as funçoes SUM() e MAX(). O problema é que eu não consigo fazer a soma somente das respostas com maiores valores e mostrar para o usuário. Exemplificando melhor: Pergunta 1 tem como respostas: Resposta 1 vale: 10 - Risco 1 "Maior pontuaçao no risco 1" 2 - Risco 2 Resposta 2 vale: 5 - Risco 1 3 - Risco 2 "Maior pontuaçao no risco 2" Pergunta 2 tem como respostas: Resposta 1 vale: 5 - Risco 1 3 - Risco 2 Resposta 2 vale: 7 - Risco 1 "Maior pontuaçao no risco 1" 10 - Risco 2 "Maior pontuaçao no risco 2" O que eu quero é que o sistema mostre a pontuação máxima possivel com as respostas acima. Na lógica o sistema teria que trazer: Risco 1: 17 pontos possíveis Risco 2: 13 pontos possíveis Entende agora? Abraços Compartilhar este post Link para o post Compartilhar em outros sites