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 :

Agregat non autorisé dans requête update


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Décembre 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 2
    Par défaut Agregat non autorisé dans requête update
    Bonjour,

    Je rencontre le pb suivant. Je dois mettre à jour un champ d'une table A à partir d'une autre table B en réalisant une jointure.
    La définition de la jointure en question ne me permet pas d'obtenir une seule valeur de la table B pour un enregistrement de la table A.
    Par une instruction SELECT, j'y parviens en rajoutant une formule de type MIN() sur le champ qui m'intéresse car dans les enregistrements de la table B renvoyés, celui qui m'intéresse est le plus petit.
    Pb: La formule de type Min() n'est pas tolérée dans une requête UPDATE.

    Exemple:

    Table A

    Code Quantité Prix
    01 120

    Table B

    Code Quantité Prix
    01 1 10
    01 10 9
    01 100 8
    01 1000 7

    Je veux mettre à jour A.Prix par B.Prix où A.Quantité <= B.Quantité et où B.Prix est minimum.

    En sélection, la requête :

    Select Min(B.Prix) From B Inner Join A on A.Code=B.Code and A.Quantité<=B.Quantité

    me donne bien 8

    Comment faire en UPDATE ?

    Merci.

  2. #2
    Membre éprouvé Avatar de Le Pharaon
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 880
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE A
    SET A.Prix = SELECT Min(B.Prix) FROM B WHERE A.Code=B.Code AND 
    A.Quantité<=B.Quantité

  3. #3
    Candidat au Club
    Inscrit en
    Décembre 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 2
    Par défaut Message d'erreur
    Merci.

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

Discussions similaires

  1. [Toutes versions] Numéro auto non désiré dans requète création de table
    Par JeanYves70 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 30/09/2013, 10h40
  2. [W3C] Caractère non autorisé dans un id
    Par Invité dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 27/06/2011, 10h57
  3. Réponses: 1
    Dernier message: 21/01/2011, 16h17
  4. [MySQL] Erreur dans requête Update
    Par kikoyo dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 09/04/2009, 15h21
  5. [SQL] Résultat de fonction php non valide dans requête SQL
    Par darksnake dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/12/2007, 14h44

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