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

Requêtes et SQL. Discussion :

Update et select


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier Avatar de Arola78
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2003
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2003
    Messages : 133
    Points : 94
    Points
    94
    Par défaut Update et select
    Bonjour,
    Mon problème peut se résumer ainsi :
    - 1 table avec les champs :
    - nom
    - prénom
    - nombre entier
    - la table est initialisée avec les enregistrements suivants :
    - Dupont Didier 0
    - Dupont Charles 0
    - Dupont Louise 0
    - Dupont Marie 0
    - Pantin Luc 0
    - Rondau Emile 0
    - Rondau Lucie 0

    La requête que je voudrais écrire comptabilise les personnes qui ont le même NOM et affecte à chacune d’elles le nombre ainsi trouvé, de telle sorte que la table sera, après Update :
    - Dupont Didier 4
    - Dupont Charles 4
    - Dupont Louise 4
    - Dupont Marie 4
    - Pantin Luc 1
    - Rondau Emile 2
    - Rondau Lucie 2

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 31
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par Arola78
    Bonjour,
    Mon problème peut se résumer ainsi :
    - 1 table avec les champs :
    - nom
    - prénom
    - nombre entier
    - la table est initialisée avec les enregistrements suivants :
    - Dupont Didier 0
    - Dupont Charles 0
    - Dupont Louise 0
    - Dupont Marie 0
    - Pantin Luc 0
    - Rondau Emile 0
    - Rondau Lucie 0

    La requête que je voudrais écrire comptabilise les personnes qui ont le même NOM et affecte à chacune d’elles le nombre ainsi trouvé, de telle sorte que la table sera, après Update :
    - Dupont Didier 4
    - Dupont Charles 4
    - Dupont Louise 4
    - Dupont Marie 4
    - Pantin Luc 1
    - Rondau Emile 2
    - Rondau Lucie 2

    update table1
    set nombre = (select count(*)
    from table1 t2
    where table1.nom = t2.nom
    group by nom)

  3. #3
    Membre régulier Avatar de Arola78
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2003
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2003
    Messages : 133
    Points : 94
    Points
    94
    Par défaut
    Bonjour,
    J'ai donc écrit la requête :

    Update Valeurs T1
    set T1.Multiple = (select count(*) from Valeurs T2 where T1.Nom= T2.Nom group by Nom)

    et j'ai la réponse :

    L'opération doit utiliser une requête qui peut être mise à jour. (Erreur 3073)
    Vous avez essayé d'exécuter, d'ouvrir ou de modifier une requête qui ne peut être mise à jour.
    Causes possibles :
    • Vous avez essayé d'exécuter une requête qui tente de mettre à jour un champ non modifiable. Par exemple, la requête a été créée de façon telle que vous essayez de mettre à jour un champ du côté un d'une relation un-à-plusieurs.
    • Vous avez essayé d'utiliser l’ancienne méthode OpenQueryDef sur une requête qui est une base de données ouverte à accès en lecture seule.
    La base de données est en lecture seule pour l'une des raisons suivantes :
    • Vous avez utilisé la méthode OpenDatabase ou le contrôle Data de Visual Basic, puis ouvert la base de données pour un accès en lecture seule.
    • Le fichier de base de données a été défini en lecture seule dans votre système d'exploitation de réseau.
    • Dans un environnement réseau, vous n'avez pas les autorisations d'accès en écriture pour le fichier de la base de données.
    Fermez la base de données, résolvez le problème de lecture seule, puis rouvrez-la pour un accès en lecture/écriture.
    • Vous n'avez pas l'autorisation de modifier la requête. Pour modifier vos autorisations, consultez l’administrateur du système ou le créateur de la requête.

    Je ne pense pas que la base soit ouverte en lecture seule car je peux la mettre à jour d'une autre manière. Je pencherai plutôt pour la relation un-à-plusieurs.
    Est-ce le bon diagnostic et comment contourner le problème ?
    Merci et bonne journée à tous.

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE matable SET nbnoms = DCount("nom","matable","nom = '" & [nom] & "'");

  5. #5
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    bjr,

    stocker ce nombre dans la table n'est pas forcément une bonne idée

    à chaque modification de la table il faut relancer le calcul

    pourquoi ne pas faire le calcul quand tu en as besoin sans le stocker, dans une requête par exemple

  6. #6
    Membre régulier Avatar de Arola78
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2003
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2003
    Messages : 133
    Points : 94
    Points
    94
    Par défaut
    Bonjour,
    Merci Random, c'est Ok avec la synthaxe que tu m'as indiquée.

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

Discussions similaires

  1. Requete Update avec Select imbriqué: etrange resultat!
    Par corentone dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/08/2007, 15h05
  2. update et select en une seule fois
    Par laloupiote dans le forum Requêtes
    Réponses: 1
    Dernier message: 15/06/2007, 15h58
  3. LIMIT dans UPDATE vs SELECT
    Par Yadutaf dans le forum Requêtes
    Réponses: 3
    Dernier message: 12/04/2007, 20h36
  4. [Debutant] UPDATE et SELECT
    Par zooffy dans le forum Langage SQL
    Réponses: 3
    Dernier message: 24/06/2006, 16h19
  5. [Oracle9i/ Pl/Sql] Update et select en même temps
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 7
    Dernier message: 31/05/2005, 17h26

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