Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fedorex

Armazenar e somar valores referente a um ID

Recommended Posts

Dae galéra!!!

 

Eu sou novo aqui no forum, mas já venho com uma bomba http://forum.imasters.com.br/public/style_emoticons/default/natal_dry.gif que está me quebrando no meio!

 

Sou novato em programação php e sql, peço ajuda de vcs pra resolver este problema! http://forum.imasters.com.br/public/style_emoticons/default/natal_wink.gif

 

Bom meu problema é o seguinte, eu estou fazendo um sistema php com sql. Esse sistema é tipo um caderno de mini mercado onde a pessoa "marca" para pagar tudo no final do mês, em vez de pagar na hora da compra. O sistema tem o cadastro do cliente e eu preciso criar um esquema sql que pegue um valor (que é o débito) referente a este cliente seja somado com o de outras compras do mesmo mês e dar o valor total de quando o cliente está devendo.

 

Lembrando que o débito tem que ser referente ao cliente que está cadastrado.

 

 

Eu tenho as seguintes tabelas alunos e valores.

 

Imagem Postada

 

Imagem Postada

 

Aqui é +- como vai ser a entrada do valor e onde vai a parecer o total

Imagem Postada

 

eu tentei o seguinte script:

 

SELECT sum(valor_somar)
FROM valores
WHERE aluno_nome = 'colname'

colname: $_GET['aluno_nome']

 

eu estou usando como filtro o aluno_nome.

 

 

Conto com a ajuda de vocês! http://forum.imasters.com.br/public/style_emoticons/default/natal_noel.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fed, beleza?!

 

Bem vindo ao forum e ao mundo SQL ;)

 

As imagens nao aparecem pra mim, pq eh blokeado no trampo ¬¬ entao vou colocar a sintaxe de sum pra você ok?!

Para usar a funcao sum, você tem que agrupar os campos que vao ser listados:

 

SELECT sum(valor_somar) as soma, aluno_nome
FROM valores
WHERE aluno_nome = 'colname'
group by aluno_nome

Não sei se é este o resultado que espera ^^

 

 

Abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tudo certo e com você?

 

Obrigado!!!

Espero no futuro poder compartilhar o meu conhecimento com os outros tbm!

 

Eu vou ver e o quanto antes coloco a resposta se deu certo. http://forum.imasters.com.br/public/style_emoticons/default/natal_wink.gif

 

Des de já eu agradeço mto pela força! http://forum.imasters.com.br/public/style_emoticons/default/natal_happy.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ainda não consegui com esse código http://forum.imasters.com.br/public/style_emoticons/default/natal_sad.gif

 

SELECT sum(valor_somar) as soma, aluno_nome
FROM valores
WHERE aluno_nome = 'colname'
group by aluno_nome

Mas valeu mesmo pela força!

 

Quando eu consegui eu posto o código aqui. http://forum.imasters.com.br/public/style_emoticons/default/natal_wink.gif

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

----Tabela alunos-------

aluno_id | INTERGER

aluno_nome | VARCHAR

 

____________________

 

----Tabela valores---------

 

valor_id | INTERGER

valor_somar | DOUBLE

valor_total | DOUBLE

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Fedorex, beleza?!

 

Vamos lá, voltar a sua soma... http://forum.imasters.com.br/public/style_emoticons/default/devil.gif

 

eu tentei o seguinte script:

 

 

CODE

SELECT sum(valor_somar)

FROM valores

WHERE aluno_nome = 'colname'

 

 

colname: $_GET 'aluno_nome'

 

eu estou usando como filtro o aluno_nome.

Que erro ele te retorna?! ou ele nao faz soma alguma?

 

Supondo que a estrutura que me passou é realmente esta:

----Tabela alunos-------

aluno_id | INTERGER

aluno_nome | VARCHAR

 

____________________

 

----Tabela valores---------

 

valor_id | INTERGER

valor_somar | DOUBLE

valor_total | DOUBLE

 

tente o seguinte:

select sum(valor_somar) as soma 
from valores inner join alunos on valores.aluno_id = alunos.aluno_id
where aluno_nome = 'junior'

No where, eu coloquei o meu nome. Ali você altera e poe um nome existente na base e ve o que retorna http://forum.imasters.com.br/public/style_emoticons/default/devil.gif

 

Abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dae tudo certo e com você?

 

Pior que deu um erro quando eu fui fazer o Recordset http://forum.imasters.com.br/public/style_emoticons/default/natal_sad.gif.

 

Deu esse erro: 1052 Column 'aluno_nome' in where clause is ambiguous.

 

eu fiz assim:

 

select sum(valor_somar) as soma 
from valores inner join alunos on valores.aluno_id = alunos.aluno_id
where aluno_nome = 'variavel'

 

variavel: $_GET 'aluno_nome'

 

Valeu pela força!!!

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse campo deve existir em mais de uma tabela

 

entao use o nome da tabela para especificar que campo se trata

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Fedorex, beleza rs

 

Como o Mario disse, este campo tem nas duas tabelas. Erro meu. No select que te passei esta faltando colocar a referencia deste campo:´

 

where alunos.aluno_nome = 'variavel'

 

Este erro clause is ambiguous sempre aparece qdo você tem o mesmo campo em duas ou mais tabelas e nao faz esta referencia a ele.

 

Qq coisa eh soh retornar

 

Abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dae galera!

 

Feliz ano novo pra todos!!!

 

 

Eu coloquei esse código, mas deu outro erro http://forum.imasters.com.br/public/style_emoticons/default/natal_sad.gif ( 1054 Unknown column 'valores.aluno_id' in 'on clause' )

 

select sum(valor_somar) as soma
from valores inner join alunos on valores.aluno_id = alunos.aluno_id
where alunos.aluno_nome = 'variavel'

variavel: $_GET 'aluno_nome'

 

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

aluna id existem na tabela valores?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade o erro do começo nao eh isso nao.

 

Tem que ter um relacionamento entre a tabela aluno e a tabela valores, por isso colokei um inner join para saber de kal aluno eh a soma dos valores entendeu?!

 

Como te falei nao tenho acesso a imagens aki no trampo, tem como postar toda a estrutura que esta nela?!

 

Abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

voce precisa ver qual o campo que relaciona as tabelas e sao esses que voce usará

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu entendi http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif, eu criei o campo aluno_id na tabela valores e não deu nenhum erro na criação do recordset, mas eu não estou conseguindo exibir o resultado, pra ver se realmente deu certo. http://forum.imasters.com.br/public/style_emoticons/default/upset.gif

 

Aqui está as tabelas.

 

----Tabela alunos-------

aluno_id

aluno_nome

aluno_pai

aluno_mae

aluno_responsavel

aluno_endereco

aluno_numero_casa

aluno_serie

aluno_turma

aluno_tel

aluno_cel

aluno_informacao

aluno_limite_consumo

aluno_cep

aluno_data

 

___________________________________

 

----Tabela valores---------

 

valor_id

valor_somar

valor_total

aluno_id

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

aparentemente nao era para ser este o erro

 

execute denovo e post o erro

 

é certeza de estar assim as tabelas?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O campo aluno_id na tabela de valores está sendo gravado com o ID do aluno correspondente da tabela alunos? Outra coisa: o campo aluno_nome recebe o nome da mesma forma que está salvo no bd?

Compartilhar este post


Link para o post
Compartilhar em outros sites

na verdade ele não esta exibindo nenhum valor http://forum.imasters.com.br/public/style_emoticons/default/upset.gif.

 

sim as tabelas estão iguais a essas. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

select sum(valor_somar) as soma
from valores inner join alunos on valores.aluno_id = alunos.aluno_id
where alunos.aluno_nome = 'variavel'

O "valores.aluno_id" está recebendo o "alunos.aluno_id", não sei oq estou fazendo de errado. :unsure:

 

é que eu não sei mto bem fazer a chave estrangeira, será que o problema está na chave estrangeira?

 

ele está gravando o valor no campo "valores.valor_somar ".

 

sim o aluno_nome está igual ao do bd.

 

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acabei de ver as imagens lah no seu primeiro post.

Tente fazer isso:

 

select sum(valor_somar) as soma
from valores inner join alunos on valores.aluno_nome = alunos.aluno_nome
where alunos.aluno_nome = 'variavel'

As tabelas tem que ter uma referencia entre si. como que uma linha da tabela valor é referente a um aluno (da tabela de aluno)?

Pela estrutura, estou supondo que é o campo: aluno_nome

 

Trabalhar com campo em que as referencias (chaves estrangerias) são do tipo text, varchar, nvarchar pode te trazer algumas complicações, uma delas é o indice que pode ficar fragmentado demais.

 

O que eu mudaria na sua estrutura:

 

Tabela alunos

aluno_id

aluno_nome

-- demais campos --

 

Tabela valores

 

valor_id

valor_somar

valor_total

aluno_id

 

na gravação dos dados nesta tabela, colocaria o id do aluno, que esta na tabela alunos

 

Exemplo:

 

tabela alunos:

aluno_id: 1 (auto incremento)

aluno_nome: Junior

 

 

tabela valores

valor_id: 1 (auto incremento)

valor_somar: 10

valor_total: 10

aluno_id: 1

 

Esta linha da tabela de valores é referente ao aluno_id 1, que no caso soy jo ;)

 

Ficou complicado?! Se não entendeu, pode questionar http://forum.imasters.com.br/public/style_emoticons/default/devil.gif que estamos aqui para ajudar

 

Abçs e boa sorte

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.