Ir para conteúdo

POWERED BY:

Arquivado

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

Nukes

Comparar dados de duas tabelas e subtrair

Recommended Posts

Galera, estou com o seguinte problema:

 

Tenho a tabela Fenix e a tabela Almox com as seguintes estruturas:

 

Fenix

- campo.codigo

- campo.quantidade

 

Almox

- campo.codigo

- campo.quantidade

 

O que eu preciso fazer é o seguinte: Pegar somente os 'campo.codigo' que existem nas duas tabelas, e subtrair a quantidade de cada valor retornado.

 

Por exemplo:

 

Fenix

Codigo = 10 | Quantidade = 3

Codigo = 12 | Quantidade = 2

Codigo = 14 | Quantidade = 7

 

Almox

Codigo = 10 | Quantidade = 1

Codigo = 9 | Quantidade = 4

Codigo = 14 | Quantidade = 6

 

 

Isso iria me retornar:

 

Resultado:

Codigo = 10 | Quantidade = 2

Codigo = 14 | Quantidade = 1

 

Ou seja, ele pega os codigos que são iguais nas duas tabelas e diminui a da tabela1 pra tabela2.

 

Obrigado desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Basta um join (sem outer) e calcular a diferença

 

select Fenix.codigo , (Fenix.quantidade - Almox.quantidade) difer
where Fenix.codigo = Almox.codigo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Basta um join (sem outer) e calcular a diferença

 

select Fenix.codigo , (Fenix.quantidade - Almox.quantidade) difer
where Fenix.codigo = Almox.codigo

 

Motta, ocorreu o seguinte erro de sintaxe:

 

ou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where conv_fenix.codigo = conv_almox.codigo' at line 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
select Fenix.codigo , (Fenix.quantidade - Almox.quantidade) difer
from Fenix , Almox
where Fenix.codigo = Almox.codigo

Compartilhar este post


Link para o post
Compartilhar em outros sites

select Fenix.codigo , (Fenix.quantidade - Almox.quantidade) difer
from Fenix , Almox
where Fenix.codigo = Almox.codigo

 

Certo, agora eu acho que deu certo, mas como eu faço pra imprimir no PHP o valor fenix.quantidade - almox.quantidade?

 

Meu código está assim:

 

$query3 = ("select conv_fenix.codigo , (conv_fenix.quantidade - conv_almox.quantidade) difer from conv_fenix , conv_almox
where conv_fenix.codigo = conv_almox.codigo");
$sql3 = mysql_query($query3) or die (mysql_error()); 

while ($busca3 = mysql_fetch_array($sql3)) {
echo '<tr>
		<td>'.$busca3['codigo'].'</td>
		<td>'.$busca3['quantidade'].'</td>
		</tr>';
}
?>  

 

Eu tentei imprimir assim, pelo índice da array:

 

echo '<tr>

<td>'.$busca3['codigo'].'</td>

<td>'.$busca3['1'].'</td>

</tr>';

}

?>

...

 

Se eu coloco 0 no indice da var $busca3, ele imprime os códigos dos produtos tudo certo... Mas se eu coloco o índice 1, ele imprime uns números enormes:

 

18446744073709551615

0

0

0

0

0

0

0

0

0

18446744073709551615

 

Como se tivesse juntado tudo... (Lembrando que ta dentro de um while, era pra imprimir um em cada <td>...

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.