IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

requete update et insertion dans 2 tables


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 31
    Points : 14
    Points
    14
    Par défaut requete update et insertion dans 2 tables
    Bonjour,
    je viens vers vous car je lutte dans la création d'une requete sous access 2003.
    je suis trés novice et je vais essayer de m'expliquer le plus compréhensiblement.

    alors voila:
    j'ai une table (tab_livraison) avec laquel j'ai fait un formulaire qui me permet de rentrer des produits (nom, quantité, prix,conditionnement...)
    jusqu'a la tous ce passe bien.

    mais a l'aide de ce formulaire et d'un bouton de validation je voudrais une requette qui puisse mettre a jour dans une autre table (tab_stock) qui contiens les mêmes propriétées de tab_livraison des champs et de les calculer si le référent existe dans tab_stock ou de me m'inserrer une nouvelle ligne si ce référent n'existe pas...

    ex littaire (enfin presque..lol) :
    si tomate à 4,8 existe alors additionne les quantités stock et livraison sinon insert une ligne tomate à 4,8

    pourant j'ai chercher sur les forums et les cours access depuis 5jours
    mais étant novice je dois faire des erreurs dans la formulation car je n'y arrive pas....

    j'espere avoir étais assez clair dans mon esplication de probleme, merci d'avance pour l'aide que vous me porterez...

    @+
    croke

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Tu as donc une table avec toutes tes entrées de marchandise.
    Tu as sans doute, d'autre part une autre table qui contient toutes tes sorties de marchandise.
    Ton problème : calculer le stock ?
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 31
    Points : 14
    Points
    14
    Par défaut
    merci de ta réponse...

    oui voila....
    alors c'est exacte il faut calculer le stock....
    si le produits existe en stock et qu'il est au même prix que la rentrée produits alors aditionne la quantité stock et la quantité sortie. et si le produits n'existe pas ou n'est pas au meme prix alors ajoute le au stock.

    voila en gros ce que je n'arrive pas a mettre en requete

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Il faut 2 requêtes.

    Voici le sql de la query qui adapte la quantité si le poste existe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE tab_livraison INNER JOIN tab_stock ON tab_livraison.nom = tab_stock.nom SET tab_stock.quantité = [tab_stock].[quantité]+[tab_livraison].[quantité]
    WHERE (((tab_livraison.prix)=[tab_stock].[prix]));
    et celui de la création du nouveau poste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO tab_stock
    SELECT tab_livraison.*
    FROM tab_livraison LEFT JOIN tab_stock ON tab_livraison.nom = tab_stock.nom
    WHERE (((tab_livraison.prix)<>[tab_stock].[prix])) OR (((tab_stock.prix) Is Null));
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 31
    Points : 14
    Points
    14
    Par défaut
    Merci enormement pour ta réponse...
    Donc effectivement j'ai pris tes requetes (beaucoup mieux contruite que celle que je fesais...)
    et je l'ai ai modifié un peu, car avec update il prennais a chaque fois toute la table livraison en calcul, alors que ce qui m'interressais c'était de mettre a jour juste la valeur que je venais de recevoir.... ce qui fait que j'ai rejouter le critère avec la fonction date.... et j'ai était assez surpris de moi meme car ça a marcher....

    encore une fois merci beaucoup pour ton aide....
    j'ai plus qu'a faire le meme type de requete pour les sorties produits....

    Grand merci...

    voila le code finale si ça peu aider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE tab_livraison INNER JOIN tab_stock ON tab_livraison.ref_prod_nomm=tab_stock.ref_prod_nomm SET tab_stock.condi_colis = tab_stock.condi_colis+tab_livraison.condi_colis
    WHERE (((tab_livraison.tarif_ht)=tab_stock.tarif_ht) And ((tab_livraison.date_enreg)=date()));
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO tab_stock
    SELECT tab_livraison.*
    FROM tab_livraison LEFT JOIN tab_stock ON tab_livraison.ref_prod_nomm = tab_stock.ref_prod_nomm
    WHERE (((tab_livraison.tarif_ht)<>[tab_stock].[tarif_ht]) AND ((tab_livraison.ref_livraison)<>[tab_stock].[ref_livraison])) OR (((tab_stock.tarif_ht) Is Null));

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] requete update et insert dans table de liaison
    Par rollingboy dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 21/06/2014, 18h34
  2. Update or Insert dans plusieurs tables
    Par Linio dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 18/08/2010, 12h54
  3. Update et insert dans une table de backup
    Par PunkMetal dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/08/2008, 05h41
  4. Requete insertion dans une table sous delphi?
    Par EssaiEncore dans le forum Bases de données
    Réponses: 5
    Dernier message: 09/01/2006, 15h12
  5. sql update et insert dans la meme requete
    Par Jessicaa dans le forum Langage SQL
    Réponses: 8
    Dernier message: 14/12/2005, 15h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo