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 :

Plusieurs select dans un INSERT


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2009
    Messages : 27
    Par défaut Plusieurs select dans un INSERT
    Bonjour,

    je suis novice en SQL et je me demande s'il est possible de faire un INSERT sur une table avec plusieurs SELECT sur une même variable.
    J'ai été voir sur l'aide de votre forum mais n'arrive pas à l'adapter à mon problème. Il faut que je modifie la clause where de chaque SELECT.

    Mon code risque d'être plus parlant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    insert into BU ("code_bu","nom_bu","statut_qdb_bu","date_statut_qdb_bu","type_qdb_bu","flag_archive_bu")
      (SELECT "string_value"
      FROM alf_node_properties where qname_id='1542',
      SELECT "string_value"
      FROM alf_node_properties where qname_id='1545',
      SELECT "string_value"
      FROM alf_node_properties where qname_id='1546',
      SELECT "string_value"
      FROM alf_node_properties where qname_id='1543',
      SELECT "string_value"
      FROM alf_node_properties where qname_id='1541',
      SELECT "string_value"
      FROM alf_node_properties where qname_id='1544'
      )
    J'ai une erreur qui est retourné sur la "," après le premier select.
    Chaque select possède le même nombre de ligne.

    Je vous remercie d'avance pour l'attention que vous porterez à mon problème,
    Mickaël.

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Quel est votre SGBD ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2009
    Messages : 27
    Par défaut
    Bonjour Waldar,

    postgreSQL

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Essayez comme-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    INSERT INTO BU ("code_bu","nom_bu","statut_qdb_bu","date_statut_qdb_bu","type_qdb_bu","flag_archive_bu")
    SELECT
      (SELECT "string_value" FROM alf_node_properties WHERE qname_id = '1542'),
      (SELECT "string_value" FROM alf_node_properties WHERE qname_id = '1545'),
      (SELECT "string_value" FROM alf_node_properties WHERE qname_id = '1546'),
      (SELECT "string_value" FROM alf_node_properties WHERE qname_id = '1543'),
      (SELECT "string_value" FROM alf_node_properties WHERE qname_id = '1541'),
      (SELECT "string_value" FROM alf_node_properties WHERE qname_id = '1544');
    Ou comme-ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    INSERT INTO BU ("code_bu","nom_bu","statut_qdb_bu","date_statut_qdb_bu","type_qdb_bu","flag_archive_bu")
    VALUES (
      SELECT "string_value" FROM alf_node_properties WHERE qname_id = '1542',
      SELECT "string_value" FROM alf_node_properties WHERE qname_id = '1545',
      SELECT "string_value" FROM alf_node_properties WHERE qname_id = '1546',
      SELECT "string_value" FROM alf_node_properties WHERE qname_id = '1543',
      SELECT "string_value" FROM alf_node_properties WHERE qname_id = '1541',
      SELECT "string_value" FROM alf_node_properties WHERE qname_id = '1544'
           );

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2009
    Messages : 27
    Par défaut
    Pour la première solution, j'ai une erreur "ERROR: more than one row returned by a subquery used as an expression".

    Pourtant je ne sélectionne qu'une variable par requête.

    Pour la deuxième, il me retourne une erreur sur le select après le VALUES.

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Que donne cette requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
      FROM alf_node_properties
     WHERE qname_id between '1541' and '1546';

Discussions similaires

  1. SELECT dans un INSERT
    Par todier dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/04/2007, 15h44
  2. Insérer plusieurs valeurs dans rq INSERT
    Par Guennec.Yannick dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 24/03/2007, 12h52
  3. [SQL] SELECT dans un INSERT
    Par macben dans le forum Oracle
    Réponses: 3
    Dernier message: 28/12/2005, 09h40
  4. [ASE]probleme memoire: select dans une insert
    Par SegmentationFault dans le forum Sybase
    Réponses: 2
    Dernier message: 16/08/2005, 12h20
  5. Plusieurs SELECT dans l'ouverture d'une connection
    Par pmboutteau dans le forum ASP
    Réponses: 6
    Dernier message: 01/04/2005, 11h09

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