Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1447 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Relation entre 2 tables dans une même base de données

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Relation entre 2 tables dans une même base de données

n°1954394
oron
Posté le 01-01-2010 à 19:32:05  profilanswer
 

Bonsoir à tous et pour commencer je vous souhaite une bonne et heureuse année 2010
 
J' ai un petit problème et j'ai beau chercher, je n'arrive pas à trouver la solution
 
j'ai 1 base de données en sql avec plusieurs table mais mon problème se pose sur 2 d'entre elles.  
 
une s'appelle "stock" avec comme colonnes : Num_produit_stock ; Nom ; Description ; Prix unitaire vendu et Quantité_stock
et l'autre s'appelle "facture_detail" avec comme colonnes :  Num factures détails ; Num facture BDD ; Num_produit_facture ; Quantité_facture
 
Prenons un exemple. stock m'indique ce que j'ai en stock comme son nom l'indique et que facture détail m'indique combien d'article j'ai de commandé dans la facture.
si j'ai un "stock" : 01 ; ampoule ; ampoule 50Watts ; 6€ ; 200. J'ai un client qui me prend une "facture_detail" : 01 ; 01 ; 01 ; 50 ce que j'aimerais c'est client une relation entre les deux Quantité de mes 2 tables pour que après enregistrement de ma facture, dans ma table stock je me retrouve avec Quantité = Quantité - Quantité facture sachant qu'aucune Quantité n'est clef primaire bien sûr.
 
J'ai déjà une relation comme vous le voyez entre ces 2 table avec Num produit.
 
J'espère avoir été clair, si vous voulez des compléments d'information n'hésitez pas.
 
:jap: d'avance


Message édité par oron le 03-01-2010 à 09:52:45
mood
Publicité
Posté le 01-01-2010 à 19:32:05  profilanswer
 

n°1954542
oron
Posté le 03-01-2010 à 09:52:01  profilanswer
 

après d'autre recherche, j'ai trouvé un début de solution, j'arrive bien à soustraire mes 2 tables comme je veux mais il me reste un petit soucis
 
voilà le code que j'utilise :  
SELECT egdi3_stock.Num_produit_stock, egdi3_stock.Quantite_stock - egdi3_factures_details.Quantite_facture
FROM egdi3.egdi3_stock AS egdi3_stock, egdi3.egdi3_factures_details AS egdi3_factures_details
WHERE egdi3_stock.Num_produit_stock = egdi3_factures_details.Num_produit_facture )
 
le seul problème c'est qu'il me renvoie un tableau avec le résultat de la soustraction mais il ne met pas à jour ma table stock donc pour chaque opération, il reprend le stock au début.
 
si quelqu'un aurait une idée
 
:jap: d'avance

n°1954910
boboss75
Posté le 04-01-2010 à 16:42:37  profilanswer
 

il faut faire un update de ta table "stock" non ?
 
update stock
set Quantité_stock = [nouvelle quantité après soustraction]
where Num_produit_stock = [numéro de ton produit]

n°1955106
E-Nyar
I ain't no nice guy after all
Posté le 05-01-2010 à 14:01:31  profilanswer
 

Essaie avec un trigger sur la table facture qui va mettre à jour automatiquement le stock (update de stock sur clé produit).
Pas top niveau perf si y'a pas mal de transactions.


---------------
Don't fuck me, I'm anonymous.
n°1955140
MagicBuzz
Posté le 05-01-2010 à 14:33:48  profilanswer
 

http://forum.hardware.fr/hfr/Progr [...] m#t1447148

 

Tu y trouveras un exemple de gestion de stock, et une solution élégante pour gérer tes mouvements de stock sans t'emmerder.

 

-- Edit : Hmmm, après relecture, en fait nan. Mais entre les vues avec trigger et les colonnes calculées, tu devrais trouver de l'inspiration pour faire ça proprement.

 

PS : Garde en tête la notion de table de mouvement de stocks. C'est très utile de l'utiliser conjointement à une table de stocks, dans la mesure où ça aide bien à comprendre le bordel qui s'est passé dans les stocks quand t'as des valeurs bizarre : tu peux remonter mouvement par mouvement à la source du problème


Message édité par MagicBuzz le 05-01-2010 à 14:36:12
n°1960043
oron
Posté le 24-01-2010 à 16:13:54  profilanswer
 

bonjour, désole de ne répondre que maintenant, j'ai été pas mal occupé et je n'ai pu le faire avant.
 
je vous remercie beaucoup pour vos réponses, entre les votre et celle d'un autre forum j'ai trouvé la formules qui me convient, c'est celle là :  
 

Spoiler :

UPDATE egdi3.egdi3_stock AS egdi3_stock, egdi3.egdi3_factures_details AS egdi3_factures_details, egdi3.egdi3_factures AS egdi3_factures SET
egdi3_stock.Quantite_stock = egdi3_stock.Quantite_stock - egdi3_factures_details.Quantite_facture,
egdi3_factures_details.Produit_sortie_du_stock = 1
WHERE egdi3_factures.Num_facture_BDD = "ICI"


 
et dans ICI je met le numéros de facture que je souhaite, par contre à la lecture de vos réponse je vais me pencher sur les trigger
 
merci encore


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Relation entre 2 tables dans une même base de données

 

Sujets relatifs
probleme de choix dans une base mysql a partir d'une dateInsertion/Extraction de données formatées d'un fichier texte
Accès par mot de passe et accéder juste à une partie des données ?[SGBD] [semi-résolu] Comment organiser mes données de façon optimale ?
Connexion à une base OracleConnexion à une base Oracle
Entrer des données dans un tableau initialement videVérouiller les modification de données dans mes feuilles Excel
Exporter en csv une matrice stockée en baseImporter structure et données access dans Windev
Plus de sujets relatifs à : Relation entre 2 tables dans une même base de données


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR