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

Développement SQL Server Discussion :

Requête de suppression d'enregistrement contenant une sous-requête


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 150
    Par défaut Requête de suppression d'enregistrement contenant une sous-requête
    Bonjour,
    voici une requete qui sélectionne les enregistrements d'une table (ENTRSTK_FORMS )qui ne sont pas présents dans une autre (ENTRESTK_ADC) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select [ACH_DATE_CREAT],[ACH_TRACABILITE],[ACH_ART_CODE],[ACH_PDS_NET_REC],[ACH_COLIS_REC]
    from ENTRSTK_FORMS$
    except
    select [ACH_DATE_CREAT],[ACH_TRACABILITE],[ACH_ART_CODE],[ACH_PDS_NET_REC],[ACH_COLIS_REC]
    from ENTRSTK_ADC$;
    go
    Je souhaiterais maintenant pouvoir supprimer ces enregistrements dans la table ENTRSTK_FORMS mais ma requete n'est pas bonne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    delete ENTRSTK_FORMS$
    where
    (select [ACH_DATE_CREAT],[ACH_TRACABILITE],[ACH_ART_CODE],[ACH_PDS_NET_REC],[ACH_COLIS_REC]
    from ENTRSTK_FORMS$
    except
    select [ACH_DATE_CREAT],[ACH_TRACABILITE],[ACH_ART_CODE],[ACH_PDS_NET_REC],[ACH_COLIS_REC]
    from ENTRSTK_ADC$);
    Notez que les 2 tables ne sont pas liées.

    Merci de votre aide par avance.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 999
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 999
    Billets dans le blog
    6
    Par défaut
    Enregistrement ca existe dans les studio de musique mais pas dans les bases de données. On parle de ligne !

    Il faut joindre tous les attributs de la table cible ([ACH_DATE_CREAT],[ACH_TRACABILITE],[ACH_ART_CODE],[ACH_PDS_NET_REC],[ACH_COLIS_REC]) avec la table dérivée pour ce faire.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    bonjour,

    Passez plutôt par un NOT EXISTS.

    est-ce que les colonnes peuvent être à NULL ?

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2018
    Messages : 150
    Par défaut
    Bonjour et merci pour l'intérêt porté à ma question.

    Comment faire pour joindre tous les attributs de la table ?
    et oui certaines colonnes peuvent être à null

  5. #5
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    comme ceci par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    delete ENTRSTK_FORMS$
    where not exists
    (select [ACH_DATE_CREAT],[ACH_TRACABILITE],[ACH_ART_CODE],[ACH_PDS_NET_REC],[ACH_COLIS_REC]
    except
    select [ACH_DATE_CREAT],[ACH_TRACABILITE],[ACH_ART_CODE],[ACH_PDS_NET_REC],[ACH_COLIS_REC]
    from ENTRSTK_ADC$);

Discussions similaires

  1. Suppression d'enregistrement d'une table sous une page .jsp
    Par zakarinalaw dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 20/05/2013, 08h50
  2. Réponses: 11
    Dernier message: 02/09/2008, 15h16
  3. Suppression d'enregistrement dans une table
    Par gunico dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 22/11/2007, 16h40
  4. Réponses: 4
    Dernier message: 22/05/2006, 14h22
  5. Réponses: 3
    Dernier message: 01/12/2005, 10h17

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