sadjuan Postado Julho 13, 2009 Denunciar Share Postado Julho 13, 2009 (editado) Oi galera, eu estou tentando fazer uma pesquisa em VB6 que me de um determinado resultado que mostrarei mas pa frente.ele deve fazer a consulta em uma tabela que e a seguinte: NOTAScod nome nota1 nota2 12 joao 8 511 jose 2 811 jose 5 12 4 ana 2 912 joao 1 6E o resultado deveria ser assim:cod nome nota1 nota212 joao 9 1111 jose 7 204 ana 2 9ele soma as notas1 do joao e tambem as notas2, faz o mesmo para as outras pessoas.Eu estou a usar a conexao com o banco de dadose ADO, se me podessem me enviar um codigo que faz isso era excepcional. Editado Julho 13, 2009 por sadjuan Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Fabin Postado Julho 13, 2009 Denunciar Share Postado Julho 13, 2009 brother não sei se está certo mas tenta assimvoce na sua tabela deve ter campos para nota1 e nota2 certo, seria bom colocar um campo no bd para receber a nota finaleu tentaria deste modeselect notafinal from tabela where notafinal = "nota1+nota2"tenta colocar mais ou menos deste modo e posta ai o que deuabraçot+ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Julho 13, 2009 Denunciar Share Postado Julho 13, 2009 acho q seria isso ó:Select cod, nome, Sum(a.nota1) As nota1, Sum(a.nota2) As nota2 From Notas Group By cod, nome Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 sadjuan Postado Julho 16, 2009 Autor Denunciar Share Postado Julho 16, 2009 amigo Kuroi, experimentei o codigo que postaste para mim, mas quando coloquei ele da uma mensagem de erro que diz:run-time error '-2147217904(80040e10)'No value given for one or more required parametersO codigo sql que me deste foi:Select cod, nome, Sum(a.nota1) As nota1, Sum(a.nota2) As nota2 From Notas Group By cod, nomeAgradecia que me podesses ajudar a resolver este problema. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Julho 16, 2009 Denunciar Share Postado Julho 16, 2009 hehe, faltou por o alias na tabela. eu inventei de por isso pra encurtar o codigo, mas acabei esquecendo do principal.assim:Select cod, nome, Sum(a.nota1) As nota1, Sum(a.nota2) As nota2 From Notas As a Group By cod, nomecomo imaginei q você tava usando access, acontece q quando você fizer o sum(), ele perde o nome do campo, e você tem q por um alias pro campo. so q ele não permite Sum(nota1) As nota1, porque ele entende q ta tendo dois campos com nomes iguais. ai você teria q fazer Sum(Notas.nota1) As nota1. so q nesse caso eu sempre costumo por um alias curto pra tabela (no exemplo, o alias foi a), assim ficando Sum(a.nota1) As nota1, assim não tenho q ficar digitando o nome intero da tabela.veja ai q o codigo assim deve funcionar. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 sadjuan Postado Julho 17, 2009 Autor Denunciar Share Postado Julho 17, 2009 (editado) Amigo Kuroi, experimentei o codigo que postaste e correu as mil e uma maravilha. Fico grato por ter me ajudado a solucionar este problema. Fica ai o meu especial Obrigado.So que para melhorar este meu pequeno exercicio em VB6, eu queria que estas pesquisas fossem calculadas em intervalo de datas. eu acrescentei um campo na tabela NOTAS que e data. a tabela ficou do seguinte jeito:NOTAScod nome nota1 nota2 data12 joao 8 5 25/6/200911 jose 2 8 27/6/200911 jose 5 12 1/7/20094 ana 2 9 12/7/200912 joao 1 6 12/7/200912 joao 8 5 12/7/2009O resultado teria de ser em funcao de uma busca entre datas:cod nome nota1 nota2 data11 jose 5 12 1/7/20094 ana 2 9 12/7/200912 joao 9 11 12/7/2009O intervalo de datas no exemplo do resultado foi de 1/7/2009 a 12/7/2009, ele so somou neste caso o joao porque foi o unico que teve mais dados neste intervalo de datas.Agradecia que me ajudassem a resolver mais este passo deste problema. Editado Julho 17, 2009 por sadjuan Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 sadjuan Postado Julho 19, 2009 Autor Denunciar Share Postado Julho 19, 2009 oi galeraeu experimentei alterar o codigo que o amigo kuroi postou. para que ele podesse cacular os dados em intervalos de datas, mas ele somente soma os valores que estiverem no mesmo dia.então eu experimentei uma outra tactica, que a pesquisa por MESES em vez de por datas com havia pedido que me ajudassem, e ai ele fez exactamente o que eu queria: A TABELA ERA ESTA, ONDE TINHAMOS ANTES O CAMPO DATA AGORA TEMOS O CAMPO MESESNOTAScod ------- nome ----- nota1----- nota2----- MESES12------- joao----- 8----- 5----- janeiro11------- jose----- 2----- 8----- marco11------- jose----- 5----- 12----- maio4 ------- ana----- 2----- 9----- junho12------- joao----- 1----- 6----- junho12------- joao----- 8----- 5----- junhoE o resultado aparece da maneira que eu queria, ó:cod ------- nome ----- nota1----- nota2----- MESES4 ------- ana----- 2----- 9----- junho12------- joao----- 9----- 11----- junhose observarmos foi somado os dados onde somente temos o mes de JUNHOO codigo ficou assim:Select cod, nome, Sum(a.nota1) As nota1, Sum(a.nota2) As nota2 From Notas As a Where MESES='"& Text_de_pesquisa&"' Group By cod, nomeUm especial agradecimento ao Kuroi e toda a galera deste Forum. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 sadjuan Postado Agosto 27, 2009 Autor Denunciar Share Postado Agosto 27, 2009 (editado) Oi galera eu continuo com o mesmo problema e agradecia que me ajudassem.Eu tenho a seguinte tabela. codnomenota1nota2meses12joão85janeiro11jose28marco11jose512maio4ana29junho12joão16junho12joão85junhoE o resultado aparece da seguinte forma: codnomenota1nota2meses4ana29junho12joão911junhoAté aqui tudo perfeito, ele soma os valores da pessoa no mesmo mês. perfeito, mas o problema surge do seguinte:No mês de junho deste ano foi somado os valores deste ano do joão, e no proximo ano no mês de junho ele somará tambem os valores do joão daquele ano novo com os do ano passado, o que não poderá acontecer, devera somar os valores do mês mas diferenciando o ano, somar os valores de junho de 2009 se solicitado e valores de junho de 2010 se tambem solicitado. Ou seja em junho de 2009 o programa soma os valores do joão em junho se solicitado este mês, e quando estivermos em junho de 2010, ele somará os valores do joão do junho de 2009 e do junho de 2010, como evitar isso?, queria que em junho de 2010 ele so fosse somar e apresentar os valores de junho de 2010, ou seja do valor do mês do ano selecionado.Como fazer isso.Aquele abraco Editado Agosto 27, 2009 por sadjuan Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Agosto 28, 2009 Denunciar Share Postado Agosto 28, 2009 (editado) você não tem um campo pra guardar o ano??EDITADO:o melhor era guardar a data mesmo, e fazer o select assim:Select cod, nome, Sum(a.nota1) As nota1, Sum(a.nota2) As nota2 From Notas As a Where Month(data) = " & mes & " And Year(data) = " & ano & " Group By cod, nome Editado Agosto 28, 2009 por kuroi Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 sadjuan Postado Agosto 29, 2009 Autor Denunciar Share Postado Agosto 29, 2009 (editado) Eu tenho de ter a tabela da maneira seguinte?Acrescentando um campo de DATA, qual deveria ser o formato da data A ENTRAR NO CAMPO? ou será que tenho de tirar o campo meses e por so o campo DATA?POSSO POR O NO MEU FORM NO EVENTO LOAD:LblData= datee depois cadastrar no banco de dados no campo DATA.NãO EXISTE UMA MANEIRA DO SISTEMA ME DAR APENAS O ANO? codnomenota1nota2mesesDATA12joão85janeiro11jose28marco11jose512maio4ana29junho12joão16junho12joão85junhoE o resultado apareceria da seguinte forma: codnomenota1nota2mesesDATA4ana29junho29/08/200912joão911junho29/08/2009Agradecia que me ajudasse Editado Agosto 29, 2009 por sadjuan Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Macêdo Postado Agosto 30, 2009 Denunciar Share Postado Agosto 30, 2009 LblData= year(date) Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
sadjuan
Oi galera, eu estou tentando fazer uma pesquisa em VB6 que me de um determinado resultado que mostrarei mas pa frente.
ele deve fazer a consulta em uma tabela que e a seguinte:
NOTAS
cod nome nota1 nota2
12 joao 8 5
11 jose 2 8
11 jose 5 12
4 ana 2 9
12 joao 1 6
E o resultado deveria ser assim:
cod nome nota1 nota2
12 joao 9 11
11 jose 7 20
4 ana 2 9
ele soma as notas1 do joao e tambem as notas2, faz o mesmo para as outras pessoas.
Eu estou a usar a conexao com o banco de dadose ADO, se me podessem me enviar um codigo que faz isso era excepcional.
Editado por sadjuanLink para o comentário
Compartilhar em outros sites
10 respostass a esta questão
Posts Recomendados
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.