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 :

Problème de correspondance d'id dans une insertion [AC-2003]


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 31
    Points : 24
    Points
    24
    Par défaut Problème de correspondance d'id dans une insertion
    Bonjour,

    Le contexte:
    *J'ai 3 tables liées entres elles
    -Une table projet avec un id et un nom
    -Une table lot avec un id et un nom, lié à projet par son id
    -Une table tache avec un id et plein d'autres champs, lié à lot par son id
    *A partir d'une extraction je dois remplir chacune des tables et je possède plusieurs extractions de structures identiques, donc je répète les requetes pour chaque extraction.

    Le code:
    *Je commence par insérer les projets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        DoCmd.RunSQL "INSERT INTO projet(nom) " & _
                     "SELECT DISTINCT Projet " & _
                     "FROM import_BD"
    *Ensuite j'insère les lots
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        DoCmd.RunSQL "INSERT INTO lot (nom, id_projet) " & _
                     "SELECT DISTINCT import_BD.[Lot], projet.[id]  " & _
                     "FROM import_BD LEFT JOIN projet ON import_BD.Projet=projet.nom"
    *Enfin j'insère les taches
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        DoCmd.RunSQL "INSERT INTO tache (id, description, ajout, jour_initial, reste_a_faire, id_lot) " & _
                     "SELECT Import_BD.ProjetLot, Import_BD.Tâche, Import_BD.Ajout, Import_BD.[Chiffrage initial], Import_BD.RAF, lot.id " & _
                     "FROM import_BD LEFT JOIN lot ON import_BD.Lot = lot.nom"
    Le problème:

    Certains des lots ont le meme nom, mais ne font pas parti du meme projet, mais lorsque je lance ma troisième requete il se trouve que je me base sur le nom du lot.
    Alors il arrive que certaines taches ne soient pas attribuées au bon lot puisqu'il récupère l'id d'un lot précédent parfois.

    Des solutions ?

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 107
    Points : 5 230
    Points
    5 230
    Par défaut
    Bonjour,
    Le dernier insert doit faire une jointure qui intègre le nom ou l'id du projet pour lever l'ambiguité
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2010
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 31
    Points : 24
    Points
    24
    Par défaut
    Simple, efficace, j'achète !!

    Merci

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

Discussions similaires

  1. [requête]problème de syntaxe dans une insertion
    Par josua dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 16/05/2007, 08h50
  2. [CSS]problème centrage texte de bouton dans une boîte
    Par Aurelius dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 06/09/2005, 16h01
  3. Problème d'utilisation de fonction dans une popup
    Par Pymm dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 06/09/2005, 15h00
  4. [ASE]probleme memoire: select dans une insert
    Par SegmentationFault dans le forum Sybase
    Réponses: 2
    Dernier message: 16/08/2005, 12h20
  5. Réponses: 9
    Dernier message: 13/05/2005, 03h13

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