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 :

INSERT INTO avec une Clause Where [Toutes versions]


Sujet :

Requêtes et SQL.

  1. #1
    Membre éclairé Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 464
    Par défaut INSERT INTO avec une Clause Where
    Bonjour,

    Je bute dans la construction d'une requête INSERT INTO.

    Données :

    Supposons que j'ai une table nommée " MATABLE " avec Deux Champs : "T_Ville" et "T_NB_Pop"

    Je voudrais en fait, insérer une ligne dans cette table si et seulement si T_Ville = "Paris" n'existe pas

    Exemple :

    T_Ville...............T_NB_Pop
    Rouen................1000
    Caen..............2000
    Rennes..............3000
    Donc dans cet exemple T_Ville = "Paris" n'existe pas donc il faut que j'insère une ligne comme suit :

    T_Ville...............T_NB_Pop
    Rouen................1000
    Caen..............2000
    Rennes..............3000
    Paris..............4000
    dans le cas contraire (Paris existe) je n'insère aucune ligne.

    Comment construisiez vous cette requête ?

    Merci

    voici entre autres ce que j'ai testé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO [MATABLE] (T_Ville, T_NB_Pop)
    SELECT 'Paris' AS Expr1, '4000' AS Expr2
    FROM [MATABLE]
    WHERE ((((select count(*) from [MATABLE] WHERE ([MATABLE].T_Ville)='Paris')))) =0;))))
    Ce code m'ajoute 3 lignes de Paris lorsque la condition est vraie --> Or je veux qu'une seule ligne
    Dans le cas contraire, il ne rajoute rien --> donc OK

  2. #2
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    Bonsoir,

    Essaie ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO [MATABLE] (T_Ville, T_NB_Pop)
    SELECT TOP 1 'Paris' AS Expr1, '4000' AS Expr2
    FROM [MATABLE]
    WHERE Exists(SELECT * FROM [MATABLE] AS TMP1 WHERE TMP1.T_Ville='Paris')=False;
    TOP 1 c'est pour n'insérer qu'une seule fois.
    Sinon tu insères autant de fois qu'il y a d'enregistrements dans [MATABLE]

    Exists(...) est une sous-requête.

    A+

  3. #3
    Membre éclairé Avatar de casavba
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 464
    Par défaut
    c'est top le TOP dans une requête

    Merci LedZeppII

    J'obtiens ce que je cherchais grâce à ton aide

    Au plaisir.

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

Discussions similaires

  1. [VB.NET]Utiliser un INSERT INTO avec une VIew Access
    Par Ashleyriot dans le forum Accès aux données
    Réponses: 3
    Dernier message: 23/11/2006, 19h31
  2. insert into avec une date
    Par LeXo dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 13/11/2006, 23h08
  3. Insert avec une clause where !?
    Par Thomad dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 04/08/2006, 10h55
  4. INSERT INTO avec une valeur numéroauto
    Par priest69 dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 08/11/2005, 16h39
  5. [super requete] Dumper un model avec une clause where
    Par elievar dans le forum Langage SQL
    Réponses: 3
    Dernier message: 16/03/2005, 18h05

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