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

PL/SQL Oracle Discussion :

Requête DELETE avec un select imbriqué


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de unix27
    Inscrit en
    Septembre 2003
    Messages
    338
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Septembre 2003
    Messages : 338
    Par défaut Requête DELETE avec un select imbriqué
    Bonsoir,
    j'utilise oracle 11g, donc j’exécute cette requête sans problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT  ad.cd_cli_ref, ad.cd_enti,ad.cd_actt
    FROM   adresse ad
    WHERE ad.cd_actt=x AND ad.cd_enti=x 
    GROUP  BY ad.cd_cli_ref, ad.cd_enti,ad.cd_actt
    HAVING COUNT(*) > 1 AND  ad.cd_cli_ref IN (
    SELECT ac.cd_cli_ref
    FROM adresse ac
    WHERE    to_char(ac.DT_xx)='xx-xx-xxxx' AND ac.CD_actt=x AND ac.CD_ENTI=x 
    )
    j'aimerai la mettre dans un DELETE comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DELETE FROM adresse WHERE (la requête précédente)
    je ne sais comment faire?
    merci d'avance
    à consulter avant de poster ... la FAQ de C#

  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 : 47
    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
    Déjà commencer par réécrire la première requête, je ne vois vraiment pas l'intérêt du IN dans la clause HAVING.

  3. #3
    Membre éclairé
    Avatar de unix27
    Inscrit en
    Septembre 2003
    Messages
    338
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Septembre 2003
    Messages : 338
    Par défaut
    Citation Envoyé par Waldar Voir le message
    Déjà commencer par réécrire la première requête, je ne vois vraiment pas l'intérêt du IN dans la clause HAVING.
    bonjour,
    la requête avant le IN me donne les doublons et la requête aprés le IN ben elle filtre mes donnée avec le where
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    WHERE    to_char(ac.DT_xx)='xx-xx-xxxx' AND ac.CD_actt=x AND ac.CD_ENTI=x 
    )
    je souhaite avoir des doublons mais qui respecte certain critéres ceux qui se trouvent sur le where déjà cité
    à consulter avant de poster ... la FAQ de C#

  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 : 47
    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
    Et ceci ne suffit pas ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      SELECT cd_cli_ref, cd_enti, cd_actt
        FROM adresse
       WHERE cd_actt = x
         AND cd_enti = x 
         AND DT_xx >= to_date('xx-xx-xxxx', 'dd/mm/yyyy')
         AND DT_xx <  to_date('xx-xx-xxxx', 'dd/mm/yyyy') + 1
    GROUP BY cd_cli_ref, cd_enti, cd_actt
      HAVING COUNT(*) > 1;

  5. #5
    Membre éclairé
    Avatar de unix27
    Inscrit en
    Septembre 2003
    Messages
    338
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Septembre 2003
    Messages : 338
    Par défaut
    Citation Envoyé par Waldar Voir le message
    Et ceci ne suffit pas ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      SELECT cd_cli_ref, cd_enti, cd_actt
        FROM adresse
       WHERE cd_actt = x
         AND cd_enti = x 
         AND DT_xx >= to_date('xx-xx-xxxx', 'dd/mm/yyyy')
         AND DT_xx <  to_date('xx-xx-xxxx', 'dd/mm/yyyy') + 1
    GROUP BY cd_cli_ref, cd_enti, cd_actt
      HAVING COUNT(*) > 1;
    Oui ça marche bien cette requête
    à consulter avant de poster ... la FAQ de C#

  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 : 47
    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
    La partie avec le delete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DELETE FROM adresse 
     WHERE (cd_cli_ref, cd_enti, cd_actt) IN (le select)
    Attention avant de valider la transaction, vous supprimez toutes les références des triplets qui présentent des valeurs multiples, pas juste les données en trop, est-ce bien ce que vous désirez ?

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

Discussions similaires

  1. [INSERT][SELECT] insert avec un select imbriqué
    Par narmataru dans le forum SQL
    Réponses: 11
    Dernier message: 06/03/2013, 03h04
  2. [SQL] Requête delete avec datetime comme clé
    Par gostbuster dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 18/07/2007, 09h06
  3. [MySql 4.0] - DELETE avec un SELECT
    Par JuS80 dans le forum Requêtes
    Réponses: 1
    Dernier message: 10/01/2007, 11h00
  4. Requête DELETE avec jointure
    Par Roach- dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 24/03/2006, 15h00
  5. [ SQL ] Faire un update avec un select imbriqué
    Par zozolh2 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 11/04/2005, 12h05

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