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 :

[SQL Server] Probleme de sous-requête


Sujet :

Langage SQL

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 422
    Par défaut [SQL Server] Probleme de sous-requête
    Hello

    voila le topo : j'ai 2 tables qui ont 3 champs communs.. je voudrais pouvoir effacer les lignes de la 1er tables ou ds la 2eme table, la ou il y a ces 3 champs , il y a aussi l'etat a 'O' ...
    Voici ce ke j'ai mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DELETE FROM dbo.multi_cli
    WHERE (productName, batchNumber, serialNumber) 
    =	(SELECT acid_productName, acid_batchNumber, acid_serialNumber
    		   FROM   dbo.account
    		   WHERE state ='O');
    Evidemment, cela ne marche pas.

    Auriez-vous une idee?

    Merci

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 134
    Par défaut
    Il faut utiliser EXISTS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    DELETE FROM dbo.multi_cli
    WHERE     EXISTS     
        (    SELECT     1
            FROM       dbo.account
            WHERE     dbo.account.state = 'O'
                AND    dbo.multi_cli.productName    = dbo.account.acid_productName
                AND    dbo.multi_cli.batchNumber    = dbo.account.acid_batchNumber
                AND    dbo.multi_cli.serialNumber    = dbo.account.acid_serialNumber
        )
    ;
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 422
    Par défaut
    Merci de cette reponse rapide!

    Et bien j'ai teste et cela ne marche pas... De meme, que signifie "SELECT 1" ?

    Encore merci.

  4. #4
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 285
    Par défaut
    Quel est le message d'erreur ? Quel est ton SGBD ?

    Dans un EXISTS, on ne s'intéresse pas aux colonnes renvoyées. Donc par convention, on écrit SELECT 1, afin de minimiser les infos traitées mais ignorées.

  5. #5
    Membre émérite Avatar de philcero
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Septembre 2007
    Messages
    528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2007
    Messages : 528
    Par défaut
    J'ai pas vu quel est le moteur de base de données que tu utilises. Le langage SQL a beau être standard on ne le manipule pas de la même façon entre un Oracle et un MySQL par exemple.

    Tu peux préciser s.v.p...

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 422
    Par défaut
    Ah desole, mais finalement sisi ta requette marche bien ct mon jeu d'essai ki ete mauvais!

    Pr info j'utilise SqlServe

    Encore merci

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

Discussions similaires

  1. [SQL Server]Problème avec une requête récursive
    Par evans dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/04/2006, 20h16
  2. [SQL-SERVER 2000] Problème de requête sur une seule ligne
    Par Sytchev3 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 05/04/2006, 16h54
  3. [SQL Server] Probleme avec not exists
    Par maxxou dans le forum Langage SQL
    Réponses: 2
    Dernier message: 16/03/2006, 16h51
  4. [SQL Server 8] Regrouper 2 requêtes en une ?
    Par Baquardie dans le forum Langage SQL
    Réponses: 3
    Dernier message: 22/06/2004, 22h22
  5. attaquer base sql server avec easyphp sous windows
    Par jarod71 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 11/12/2003, 14h17

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