Requête sur 2 tables

Fermé
jippy63 - 23 juin 2013 à 12:57
antonag Messages postés 20 Date d'inscription mardi 31 juillet 2012 Statut Membre Dernière intervention 20 mai 2014 - 25 juin 2013 à 12:22
Bonjour,

J'ai 2 tables dans une base, table1 et table_histo.
Dans ces tables j'ai les champs "produit", "quantité" et date , les champs produit on le même id dans les 2 tables.
J'aimerais faire ce calcul et l'afficher dans une variable :
quantité de la table_histo - (moins) quantité de la table1 si le ID de la table_histo est égal au ID de la table 1 et afficher les 50 derniers résultat par rapport à la date.

J'ai déjà essayé pas mal de truc mais sans résultat, soit erreur sql ou affiche 0

Merci de votre aide

3 réponses

antonag Messages postés 20 Date d'inscription mardi 31 juillet 2012 Statut Membre Dernière intervention 20 mai 2014
24 juin 2013 à 20:40
Tu comptes afficher dans une variable une liste de 50 éléments ?
Autrement avec les jointures tu as moyen de faire ça simplement.

SELECT table1.produit, table1.date, (table_histo.quantité- table1.quantité) AS Soustraction
FROM table1
INNER JOIN table_histo
ON table1.produit= table_histo.produit
ORDER BY table1.date
LIMIT 50

Je n'ai pas moyen de tester cette requête, à toi de l'améliorer ;)
0
Merci antonag mais rien ne s'affiche !

Pour tout expliquer, c'est dans une page de gestion de stock que j'ai créer et dans cette page j'aimerais avoir le mouvement des 50 derniers articles car cela va m'afficher le code, la marque, l'emplacement et j'aimerais lui faire afficher la quantité d'articles qui a eu du mouvement donc faire la soustraction de la quantité se trouvant dans la table_histo moins la quantité se trouvant dans la table1 (ce que je n'arrive pas à faire !)

Voici la page actuelle et dans le "echo - quantite" j'aimerais donc afficher le résultat de la soustraction

<table width="67%" border="0" cellpadding="2" cellspacing="10">
<tr>
<th width="45" align="left">Nombre</th>
<th width="161" align="left">Code</th>
<th width="114" align="left">Emplacement</th>
<th width="234" align="left">Date</th>
</tr>
<?
$db = mysql_connect('****', '****', '****');
mysql_select_db('base',$db);
$req=mysql_query("SELECT date_histo,marque,code,id,quantite,emplacement FROM table_histo ORDER BY date_histo DESC LIMIT 50");
while($res=mysql_fetch_array($req))
{

$originalDate = $res['date_histo'];
$newDate = date("d-m-Y", strtotime($originalDate) + 25200);


echo '<tr>
<td align="left"><font color="#000000">'.$res['quantite'].'</td>
<td style="text-transform:uppercase"><font color="#000000">'.$res['marque'].' '.$res['code'].'</td>
<td align="left"><font color="#000000">'.$res['emplacement'].'</td>
<td><font color="#000000">'.$newDate.'</font></td>';

}
mysql_close();
?>
</table>

Merci
0
antonag Messages postés 20 Date d'inscription mardi 31 juillet 2012 Statut Membre Dernière intervention 20 mai 2014
25 juin 2013 à 12:22
Je ne vois pas ce qui cloche, tu devrais essayer tes requêtes sur ta base de données directement plutôt qu'à travers un .php ça sera plus simple.
Après concernant la requête tu seras bien obligé de faire une jointure comme je l'ai mis dans le message précédent, la soustraction s'y fait directement.

ps: évite le css dans ton php
0