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 :

Supp d'un nombre d'enregistements?


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2004
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juillet 2004
    Messages : 70
    Points : 48
    Points
    48
    Par défaut Supp d'un nombre d'enregistements?
    Slt tt le monde,
    comment en Access, on suprime n premiers enregistrements repend à une clause?
    exemple:

    table Personne(nom, prenom)

    nom prenom
    x y
    x z
    a b
    x r

    on suprime les 2 premiers records dont les nom sont 'x':

    solution rejeté: delete from Personne WHERE nom='x' --> suppression de 3 records

    solution prevu: DEELTE FROM Personne WHERE nom='x' TOP 2


    cette derniere n'est pas correcte .
    y-a t-il une proposition ?

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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 109
    Points : 28 438
    Points
    28 438
    Par défaut
    Citation Envoyé par bliml
    comment on suprime n premiers enregistrements repend à une clause?
    Premiers dans quel sens ?

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2004
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juillet 2004
    Messages : 70
    Points : 48
    Points
    48
    Par défaut
    sens de parcours pour le moteur de SGBD.
    (je veux supprimer le 1er record trouvé qui repend à une clause)

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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 109
    Points : 28 438
    Points
    28 438
    Par défaut
    Citation Envoyé par bliml
    sens de parcours pour le moteur de SGBD.
    Il n'y en a pas !!!!
    Théoriquement, la même requête (sans ORDER BY bien sûr) lancée plusieurs fois peut te retourner des listes ordonnées différemment.

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2004
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juillet 2004
    Messages : 70
    Points : 48
    Points
    48
    Par défaut
    Citation Envoyé par al1_24
    Théoriquement, la même requête (sans ORDER BY bien sûr) lancée plusieurs fois peut te retourner des listes ordonnées différemment.
    peut importe, l'essentiel pour moi je veux supprimer q'un seul record pas plus pas moi qui repond à la clause....

  6. #6
    J1
    J1 est déconnecté
    Membre averti Avatar de J1
    Inscrit en
    Mai 2004
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 321
    Points : 335
    Points
    335
    Par défaut
    Bonjour,

    as-tu un champ dans ta table qui puisse te servir de clef primaire ? Si oui, en admettant qu'il s'appelle ID, tu peux essayer la requête suivante (pour supprimer 2 enregistrements dont le champ Nom vaut 'x') :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DELETE FROM PERSONNE
    WHERE       ID IN (SELECT   TOP 2 ID
                       FROM     PERSONNE
                       WHERE    NOM = 'x'
                       ORDER BY ID)

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    tu ne peux pas le faire, si tu n'as pas une référence sur ces enregistrement (index par exemple)...

  8. #8
    Membre du Club
    Inscrit en
    Juillet 2004
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juillet 2004
    Messages : 70
    Points : 48
    Points
    48
    Par défaut
    merci pour votre atention,
    pour la clé primaire, elle est composé de 5 champs --> la sol° de J1 n'est plus applicable pour mon cas.
    pour lkorbaa, oui les champs sont indexés.qu'elle est votre Sol°.
    Merci pour tous

  9. #9
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 902
    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 902
    Points : 53 143
    Points
    53 143
    Billets dans le blog
    6

  10. #10
    J1
    J1 est déconnecté
    Membre averti Avatar de J1
    Inscrit en
    Mai 2004
    Messages
    321
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 321
    Points : 335
    Points
    335
    Par défaut
    Up !
    Il se trouve que j'ai repensé à ton problème hier, bliml.
    Si ta table a une clef primaire composite, tu peux procéder ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    DELETE
    FROM Personne AS P
    WHERE EXISTS (
       SELECT 1 
       FROM (
          SELECT TOP 2 Nom, Prenom
          FROM Personne 
          WHERE Nom = 'x'  
          ORDER BY Nom, Prenom) AS P1
       WHERE P1.Nom = P.Nom
       AND P1.Prenom = P.Prenom);
    Ici, on part du principe que la clef primaire est constituée des champs Nom et Prenom. A toi donc d'adapter la requête en fonction de tes champs de clef primaire.

Discussions similaires

  1. [2007] besoin module Vba Qui compte Le nombre d'enregistements
    Par youssefminato dans le forum Microsoft Office
    Réponses: 3
    Dernier message: 05/04/2014, 20h36
  2. Procédure avec un nombre variable d'arguments
    Par charly dans le forum Langage
    Réponses: 15
    Dernier message: 21/06/2002, 11h08
  3. [Comparatifs] Limites nombres tables et quantité de données
    Par benj63 dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 13/06/2002, 21h31
  4. Nombre de fichiers ouverts simultanément
    Par matrixfan dans le forum C++Builder
    Réponses: 3
    Dernier message: 27/05/2002, 17h47
  5. [Kylix] Probleme de nombre flottant!!
    Par yopziggy dans le forum EDI
    Réponses: 5
    Dernier message: 02/05/2002, 10h13

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