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

Langage SQL Discussion :

Insertion données dans une table


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 324
    Points : 40
    Points
    40
    Par défaut Insertion données dans une table
    Bonjour,

    J'ai une table COMMANDES dans laquelle j'ai deux colonnes : ARTICLE et DATE

    DAns une autre table nommé HISTORIQUE, j'ai deux colonnes également ARTICLE et DATE.

    Je souhaiterais faire une requête qui balaye la table COMMANDES et qui pour un ARTICLE et une DATE s'il n'y a pas la même correspondance dans la table HISTORIQUE, alors on créé cet enregistrement.

    Comment faire cela ?

    Merci d'avance pour votre aide.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    Tu peux utiliser une requête de ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Insert into Historique(article, date) 
    Select article, date
    From commande 
    Except
    Select article, date
    From historique
    Tu peux aussi utiliser un not existes, qui sera peu être plus performant.

    Tatayo

  3. #3
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 324
    Points : 40
    Points
    40
    Par défaut
    Merci pour la réponse. Comment peut-on insérer une valeur décimale à 0 dans le INSERT INTO?

    Merci d'avance

  4. #4
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 324
    Points : 40
    Points
    40
    Par défaut
    Citation Envoyé par tatayo Voir le message
    Bonjour,
    Tu peux utiliser une requête de ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Insert into Historique(article, date) 
    Select article, date
    From commande 
    Except
    Select article, date
    From historique
    Tu peux aussi utiliser un not existes, qui sera peu être plus performant.

    Tatayo
    J'ai donc fait cette requpete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Insert into Orders.Historique_stock VALUES(Orders.commandes.article,0.00,Orders.commandes.DATE_PORTEFEUILLE,CONCAT(Orders.commandes.DATE_PORTEFEUILLE,Orders.commandes.ARTICLE)) 
    Select Orders.commandes.article, Orders.commandes.DATE_PORTEFEUILLE
    From Orders.commandes 
    Except
    Select orders.HISTORIQUE_Stock.ARTICLE, orders.HISTORIQUE_Stock.DATE_PORTEFEUILLE
    From orders.HISTORIQUE_Stock
    La syntaxe est valide cependant quand j'exécute la requête j'ai cette erreur :
    Msg*4104, Niveau*16, État*1, Ligne*40
    L'identificateur en plusieurs parties "Orders.commandes.article" ne peut pas être lié.
    Msg*4104, Niveau*16, État*1, Ligne*40
    L'identificateur en plusieurs parties "Orders.commandes.DATE_PORTEFEUILLE" ne peut pas être lié.
    Msg*4104, Niveau*16, État*1, Ligne*40
    L'identificateur en plusieurs parties "Orders.commandes.DATE_PORTEFEUILLE" ne peut pas être lié.
    Msg*4104, Niveau*16, État*1, Ligne*40
    L'identificateur en plusieurs parties "Orders.commandes.ARTICLE" ne peut pas être lié.
    Où est-ce que j'auras fait une erreur ?
    Pour info dans le insert into j'ai mis 4 données car je dois remplir 4 colonnes. Elles sont dans le bon ordre.

    Merci d'avance pour l'aide.

  5. #5
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 101
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 101
    Points : 8 211
    Points
    8 211
    Billets dans le blog
    17
    Par défaut
    L'identificateur en plusieurs parties "XXX" ne peut pas être lié.
    Je ne connais pas ton SGBD et ses messages d'erreurs, mais ça ressemble à un problème d'intégrité référentielle.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Avec un INSERT Into, il faut utiliser soit Values, soit une requête SELECT, mais pas les deux.
    Mais rien ne t'empêche de spécifier des valeurs "en dur" je dans le SELECT.

    TATAYO

  7. #7
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 136
    Points : 38 909
    Points
    38 909
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Avant tout, merci de communiquer le script complet contenant les ordres CREATE TABLE.

Discussions similaires

  1. Problème insertion donnée dans une table
    Par Mbale57 dans le forum Développement
    Réponses: 3
    Dernier message: 21/12/2020, 14h44
  2. Insertion données dans une table
    Par Willyson dans le forum Access
    Réponses: 8
    Dernier message: 20/08/2015, 15h37
  3. [MySQL] problème insertion donnée dans une table
    Par thebestxav dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 30/04/2011, 20h01
  4. insertion de donnée dans une table (2 bd)
    Par robert_trudel dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 30/01/2007, 17h41
  5. Réponses: 5
    Dernier message: 26/01/2007, 08h11

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