Ir para conteúdo
Fórum Script Brasil
  • 0

Consultas em VB6


sadjuan

Pergunta

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 sadjuan
Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

brother não sei se está certo mas tenta assim

voce na sua tabela deve ter campos para nota1 e nota2 certo, seria bom colocar um campo no bd para receber a nota final

eu tentaria deste mode

select notafinal from tabela where notafinal = "nota1+nota2"

tenta colocar mais ou menos deste modo e posta ai o que deu

abraço

t+

Link para o comentário
Compartilhar em outros sites

  • 0

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 parameters

O codigo sql que me deste foi:

Select cod, nome, Sum(a.nota1) As nota1, Sum(a.nota2) As nota2 From Notas Group By cod, nome

Agradecia que me podesses ajudar a resolver este problema.

Link para o comentário
Compartilhar em outros sites

  • 0

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, nome

como 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.

Link para o comentário
Compartilhar em outros sites

  • 0

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:

NOTAS

cod nome nota1 nota2 data

12 joao 8 5 25/6/2009

11 jose 2 8 27/6/2009

11 jose 5 12 1/7/2009

4 ana 2 9 12/7/2009

12 joao 1 6 12/7/2009

12 joao 8 5 12/7/2009

O resultado teria de ser em funcao de uma busca entre datas:

cod nome nota1 nota2 data

11 jose 5 12 1/7/2009

4 ana 2 9 12/7/2009

12 joao 9 11 12/7/2009

O 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 por sadjuan
Link para o comentário
Compartilhar em outros sites

  • 0

oi galera

eu 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 MESES

NOTAS

cod ------- nome ----- nota1----- nota2----- MESES

12------- joao----- 8----- 5----- janeiro

11------- jose----- 2----- 8----- marco

11------- jose----- 5----- 12----- maio

4 ------- ana----- 2----- 9----- junho

12------- joao----- 1----- 6----- junho

12------- joao----- 8----- 5----- junho

E o resultado aparece da maneira que eu queria, ó:

cod ------- nome ----- nota1----- nota2----- MESES

4 ------- ana----- 2----- 9----- junho

12------- joao----- 9----- 11----- junho

se observarmos foi somado os dados onde somente temos o mes de JUNHO

O 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, nome

Um especial agradecimento ao Kuroi e toda a galera deste Forum.

Link para o comentário
Compartilhar em outros sites

  • 0

Oi galera eu continuo com o mesmo problema e agradecia que me ajudassem.

Eu tenho a seguinte tabela.

 
codnomenota1nota2meses
12joão85janeiro
11jose28marco
11jose512maio
4ana29junho
12joão16junho
12joão85junho

E o resultado aparece da seguinte forma:

 
codnomenota1nota2meses
4ana29junho
12joão911junho

Até 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 por sadjuan
Link para o comentário
Compartilhar em outros sites

  • 0

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 por kuroi
Link para o comentário
Compartilhar em outros sites

  • 0

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= date

e depois cadastrar no banco de dados no campo DATA.

NãO EXISTE UMA MANEIRA DO SISTEMA ME DAR APENAS O ANO?

 
codnomenota1nota2mesesDATA
12joão85janeiro
11jose28marco
11jose512maio
4ana29junho
12joão16junho
12joão85junho

E o resultado apareceria da seguinte forma:

 
codnomenota1nota2mesesDATA
4ana29junho29/08/2009
12joão911junho29/08/2009

Agradecia que me ajudasse

Editado por sadjuan
Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...