• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Sign in to follow this  
Followers 0
Miudadestimida

Somar e ordenar dois valores de duas tabelas diferentes

5 posts in this topic

Boa Noite a toda a comunidade do P@P.

Tenho uma pequena dúvida. Eu tenho uma tabela onde lá faço a soma e ordeno os valores de duas tabelas distintas do mysql. Exemplo:

Rank  |  Nome | Valor 1 | Valor 2 | Total

1            João      5            6          11

2            Sara      1            2            3

O valor 1 e 2 estão em tabelas separadas no mysql onde têm em comum o nome.

Sei perfeitamente somar os valores das tabelas e até ordenar por o valor 1 ou 2 a tabela. O que não sei é como faço para ordenar a tabela pelo total. Sendo que isto é um ciclo while.

Será que há algum comando especifico no mysql que me permita somar os valores de duas tabelas diferentes referente a um determinado utilizador e depois ordenar pelo total (a soma desses dois valores)?

Obrigado desde já a quem se disponibilizar ajudar.

0

Share this post


Link to post
Share on other sites

Não compreendo quando dizes que sabes perfeitamente somar os valores das tabelas e ordenar pelos valores 1 ou 2, mas depois falas em ciclos while e referes que não sabes ordenar pelo total.

Para ordernar pelo total dessa tabela basta fazer o "order by total"...

Se queres somar os valores das tabelas e ordenar por esse valor basta (pelo que compreendi do teu modelo):

select Nome, (val1 + val2) as total
from tab1
inner join tab2
on tab1.nome = tab2.nome
order by total

0

Share this post


Link to post
Share on other sites

Não compreendo quando dizes que sabes perfeitamente somar os valores das tabelas e ordenar pelos valores 1 ou 2, mas depois falas em ciclos while e referes que não sabes ordenar pelo total.

Para ordernar pelo total dessa tabela basta fazer o "order by total"...

Se queres somar os valores das tabelas e ordenar por esse valor basta (pelo que compreendi do teu modelo):

select Nome, (val1 + val2) as total
from tab1
inner join tab2
on tab1.nome = tab2.nome
order by total

Sim, mas está a falhar uma coisa que me esqueci de dizer também.

Tenho que contabilizar na "tab1" o número de vezes que o produto lá aparece.

Eu tenho assim:

$r = mysql_query("SELECT nome.produto, SUM(x.user) + SUM(x.produto) as total, COUNT(id.produto) as num FROM produto INNER JOIN user order by total

Mas o problema é que o COUNT(id.produto) aparece com um valor incorrecto se eu simplesmente adicionar o SUM(x.user) que tem o valor da tab2 e meter o join na tab2.

0

Share this post


Link to post
Share on other sites

Se tens um count de fazer group by nome.produto, SUM(x.user) + SUM(x.produto)

0

Share this post


Link to post
Share on other sites

Se tens um count de fazer group by nome.produto, SUM(x.user) + SUM(x.produto)

Muito obrigado pela ajuda.

Já consigui o que pretendia.

Mais uma vez um obrigado a toda a comunidade P@P.

0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0