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 :

Nettoyage de table


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 68
    Par défaut Nettoyage de table
    Bonjour,
    Voila j ai 2 tables liées par un ID commun
    J essaye de supprimer les lignes de la table 1 qui ne possède pas de données dans un certain champ (date) de ma table2 je suis sur que c est tout con mais je n y arrive pas
    J ai essayé avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT T1.*, T2.*
    FROM T1 INNER JOIN
    PX ON T1.Ref = T2.ref
    where T2.date is null
    Par contre l inverse marche si je veux seulement les ligne qui contienne une date cette requête fonctionne.

    Merci de votre aide.
    Casa

  2. #2
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Bonjour,

    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT *
    FROM T1 
    WHERE EXISTS (SELECT * 
    		 FROM T2 
    		 WHERE T1.Ref = T2.ref
    		AND T2.date is null)
    ++

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 68
    Par défaut
    merci pour le tuyau en fait sa marche avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT *
    FROM T1 
    WHERE NO EXISTS (SELECT * 
             FROM T2 
             WHERE T1.Ref = T2.ref)
    encore merci

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Par défaut
    Cette approche est imprudente.

    Tu devrais peut-être rajouter une clause ON DELETE CASCADE dans la déclaration de ta Foreign key.

    Sinon, tu peux toujours (découvrir ?) vivre les joies de la clause OUTPUT de delete pour conserver une liste d'identifiants à vérifier.

Discussions similaires

  1. Nettoyage de table
    Par thomarm dans le forum Requêtes
    Réponses: 2
    Dernier message: 10/02/2013, 12h59
  2. nettoyage enregistrement Table liées
    Par spirit35 dans le forum Extensions
    Réponses: 3
    Dernier message: 20/11/2011, 18h15
  3. nettoyage d'une table
    Par ChambreClaire dans le forum Requêtes
    Réponses: 1
    Dernier message: 27/01/2009, 12h13
  4. Problématique de nettoyage de table 'Societe'
    Par tvi dans le forum Oracle
    Réponses: 3
    Dernier message: 07/10/2005, 16h16
  5. Nettoyage de table temporaire
    Par Alain Dionne dans le forum Bases de données
    Réponses: 5
    Dernier message: 28/02/2004, 20h44

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