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 :

difficulté Requete Ajout


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Inscrit en
    Février 2011
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 149
    Points : 68
    Points
    68
    Par défaut difficulté Requete Ajout
    Bonjour,

    J'ai actuellement une table qui se nomme "TEST" avec différents champs (New_article et Ancien_article, Ancien_article est unique). J'ai une table 'TMP',qui la même base que 'TEST' mais vide, elle sera alimentée par un fichier .xls que l'utilisateur importera avec ses données. l'utilisateur va renseigner dans son fichier pour tel Ancien_article voici la nouvelle référence New_article)
    l'objectif est d'ajouter les données TMP à la table TEST, sans doublons bien sur !

    moi j'ai essayé cela:

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO TEST ( [New_article] )
    SELECT TMP.[New_article]
    FROM TEST, TMP
    WHERE (([TEST]![Ancien_Article]<>[TMP]![Ancien_article]));
    ce que je voulais faire : Ajouter le New_article dans la base TEST tel que l'ancien_article de la table TEST et de la table TMP soit différents (pour éviter les doublons)

    ça ne marche évidement pas, et je suis bloqué.
    Merci d'avance pour votre aide et vos solutions

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 370
    Points
    34 370
    Par défaut
    salut,

    tu cherches a inserer des donnees si elles sont manquantes, ou bien lorsqu'elles sont differentes ?

    la partie FROM de ta requete laisse planer un doute

    S'il s'agit de ne prendre que les [Ancien_article] qui ne figurent pas dans la table, il faut faire une requete de non correspondance (LEFT JOIN + Is NULL). L'assistant propose facielement la construction de cette requete

  3. #3
    Membre du Club
    Inscrit en
    Février 2011
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 149
    Points : 68
    Points
    68
    Par défaut
    Voici un exemple :

    'TEST' : ancien_article : a new_article:1
    b 2
    c 3

    'TMP' : ancien_article : a new_article : 1
    b 2
    d 4
    e 5

    moi ce que je voudrais faire, c'est d'ajouter dans ma table 'TEST' les deux lignes d et e
    Mais avec la relation Left Join,si j'ai bien compris le principe et de chercher la correspondance (soit égale) entre deux champs. donc si je mets en correspondance mon ancien_article, il va recopier toutes les lignes qui sont =, hors moi je ne veux que les ligne ou pour lequel ancien_article de ma table 'TEST' est différent de mon ancien_article de ma table 'TMP'
    Si il vous faut plus d'explication je suis disponible toute l'après midi

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 370
    Points
    34 370
    Par défaut
    OK,
    donc seul le champ ancien_article doit etre pris en compte ou pas ?

    Dans l'idee de requete SELECT:

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT TMP.* 
    FROM TMP LEFT JOIN TEST ON TMP.ancien_article = TEST.ancien_article AND TMP.new_article = TEST.new_article
    WHERE TEST.ancien_article IS NULL;

  5. #5
    Membre du Club
    Inscrit en
    Février 2011
    Messages
    149
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 149
    Points : 68
    Points
    68
    Par défaut
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT TMP.*
    FROM TMP LEFT JOIN TEST ON TMP.[Ancien_article] = TEST.[Ancien_article] AND TMP.[new_article]=TEST.[New_article]
    WHERE TMP.[CODE ARTICLE SIRLOG]<>TEST.[CODE ARTICLE SIRLOG];

    je reprends : voila ce que je voudrais dans l'idée, en pratique ça ne marche pas !

    Parce que, le left join m'affiche toutes mes données hors je ne veux que les nouvelles données... qui par la suite seront intégrées

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 370
    Points
    34 370
    Par défaut
    Ok,
    pour filtrer les donnees nouvelles (id est qui apparaissent dans TMP mais pas dans TEST), il faut ajouter un filtre sur un des champs de TEST avec un IS NULL

Discussions similaires

  1. Réponses: 10
    Dernier message: 20/02/2006, 16h04
  2. Enregistrements rejeté suite à requete ajout
    Par STEF_1 dans le forum Access
    Réponses: 9
    Dernier message: 27/01/2006, 16h18
  3. probleme requete ajout
    Par tibiurs dans le forum Access
    Réponses: 5
    Dernier message: 11/01/2006, 23h52
  4. Réponses: 2
    Dernier message: 11/01/2006, 15h49
  5. [postgres][vb.net][sql]syntaxe requete ajout
    Par Alex35 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 27/10/2005, 11h55

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