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] aide pour requete UPDATE SVP


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 27
    Points : 19
    Points
    19
    Par défaut [SQL] aide pour requete UPDATE SVP
    Bonjour,
    Je suis très novice en SQL et j’en appelle à votre solidarité SVP. Voici mon problème :
    La table T_DOUBLON contient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    NUM       NOM       PRENOM         AGE
    --------  --------  -------------  --------
    1         dupont    jean           20
    2         durant    jacques        40
    3         dupont    jean
    4         durant    jacques
    J'exécute une requête de suppression des doublons sur cette table en gardant les enregistrements les plus récents:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    DELETE
    FROM   T_DOUBLON T
    WHERE  T.NUM < ANY (SELECT NUM
                        FROM   T_DOUBLON T2
                        WHERE  T.NUM <> T2.NUM
                          AND  T.NOM    = T2.NOM
                          AND  T.PRENOM = T2.PRENOM)
    Résultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    NUM       NOM       PRENOM         AGE
    --------  --------  -------------  --------
    3         dupont    jean
    4         durant    jacques
    Seulement, je souhaiterai copier les valeurs du champ AGE dans les enregistrements les plus récents respectifs avant de supprimer les doublons...
    Résultat espéré:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    NUM       NOM       PRENOM         AGE
    --------  --------  -------------  --------
    3         dupont    jean           20
    4         durant    jacques        40
    Voila, j’espère avoir été clair et merci d’avance !

  2. #2
    Membre expérimenté
    Avatar de Bloon
    Homme Profil pro
    Consultant Freelance
    Inscrit en
    Avril 2002
    Messages
    467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant Freelance
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 467
    Points : 1 339
    Points
    1 339
    Par défaut
    Il faut d'abord faire un update, du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE T_DOUBLON
    SET AGE = (SELECT MAX(AGE) FROM T_DOUBLON T2 WHERE T2.NOM=T_DOUBLON.NOM AND T2.PRENOM=T_DOUBLON.PRENOM)
    Bloon

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    Merci pour ta reponse rapide mais cela ne marche pas...
    Ca fait 2 heures que je me prends la tete la dessus...
    SVP une autre sugestion parce que la, je suis au bord du suicide...

  4. #4
    Membre habitué Avatar de nantais
    Inscrit en
    Juillet 2004
    Messages
    158
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 158
    Points : 192
    Points
    192
    Par défaut
    Salut, et si tu faisais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    DELETE
    FROM   T_DOUBLON T
    WHERE  T.NUM IN (SELECT NOM
                        FROM   T_DOUBLON T2
                        GROUP BY T2.nom
                        HAVING (COUNT(*)>1))
    AND T.age IS NOT NULL

  5. #5
    Membre expérimenté
    Avatar de Bloon
    Homme Profil pro
    Consultant Freelance
    Inscrit en
    Avril 2002
    Messages
    467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant Freelance
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 467
    Points : 1 339
    Points
    1 339
    Par défaut
    qu'est-ce qui ne marche pas ? tu as un message d'erreur ? le résultat n'est pas bon ?

    Le update te permet de mettre la zone age à jour, ensuite il faut passer ta requête delete.

    Bloon

  6. #6
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    J'ai un message d'erreur : "L'operation doit utiliser une requete qui peut etre mise a jour."

  7. #7
    Membre expérimenté
    Avatar de Bloon
    Homme Profil pro
    Consultant Freelance
    Inscrit en
    Avril 2002
    Messages
    467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant Freelance
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 467
    Points : 1 339
    Points
    1 339
    Par défaut
    c'est quel sgbd et qu'utilises-tu pour faire tes requêtes ?

    Bloon

  8. #8
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    SGDB??
    Tu m'en demandes trop la...
    J'utilise Access 2003 si c'est ca que tu me demandes.

  9. #9
    Membre expérimenté
    Avatar de Bloon
    Homme Profil pro
    Consultant Freelance
    Inscrit en
    Avril 2002
    Messages
    467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant Freelance
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 467
    Points : 1 339
    Points
    1 339
    Par défaut
    Effectivement ça ne passe pas dans access

    Pose ta question dans le forum Access, tu auras peut-être la réponse.

    Bloon

  10. #10
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 27
    Points : 19
    Points
    19
    Par défaut
    Question posee dans le forum Access, reponse:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    UPDATE T_DOUBLON, T_DOUBLON AS T SET T_DOUBLON.AGE = T.[AGE] 
    WHERE ((T_DOUBLON.NOM=T.NOM) AND (T_DOUBLON.PRENOM=T.PRENOM) AND (T_DOUBLON.NUM>T.NUM));
    Ca marche nickel!
    Merci pour tout.

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

Discussions similaires

  1. [MySQL] Aide pour requete UPDATE depuis un formulaire checkbox
    Par craac dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 13/09/2007, 15h27
  2. [SQL] Aide pour requete
    Par fallais dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 23/08/2006, 14h44
  3. Besoin aide pour Requete SQL
    Par mystik11 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 17/07/2006, 11h34
  4. [OGS ?] Demande d'aide pour requete SQL
    Par hamtary dans le forum Langage SQL
    Réponses: 3
    Dernier message: 31/03/2006, 12h58
  5. Aide Pour Requete SQL Simple ... Merci d'avance :)
    Par thefutureisnow dans le forum Langage SQL
    Réponses: 3
    Dernier message: 09/12/2005, 11h39

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