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 :

Colonne "virtuelle" réexploitée ds le WHERE


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2006
    Messages : 89
    Points : 64
    Points
    64
    Par défaut Colonne "virtuelle" réexploitée ds le WHERE
    Bonjour,

    Je possède la requête suivante qui doit me permettre de sélectionner le bon prix pour une liste d'articles (prix promo ou prix normal):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    SELECT DISTINCT  
    	article.ID, 
    	article.PRICE_HT, 
    	article.PRICE_TTC, 
    	(article.PRICE_TTC + (article.PRICE_TTC * promotion.PERCENT / 100)) as FINAL_PRICE_TTC,
    	promotion.PERCENT,
    	promotion.BEGIN_DATE,
    	promotion.END_DATE
    FROM 
    	article LEFT JOIN promotion ON article.ID = promotion.ARTICLE_ID,
    	article_category
    WHERE 
    	article.ONLINE=1 
    	AND article_category.CATEGORY_ID=34 
    	AND (promotion.BEGIN_DATE IS NULL OR promotion.BEGIN_DATE <= '2008-10-15 11:35:03')
    	AND (promotion.END_DATE IS NULL OR promotion.END_DATE >= '2008-10-15 11:35:03')
    	AND (article.NB_STOCK > 0 OR article.OUT_STOCK_SALE = 1)
    	AND (
    		(FINAL_PRICE_TTC IS NULL AND article.PRICE_TTC >= 12 AND article.PRICE_TTC <= 20)
    		OR
    		(FINAL_PRICE_TTC <> NULL AND FINAL_PRICE_TTC >= 12 AND FINAL_PRICE_TTC <= 20)
    	    )
    MySql me renvoit l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #1054 - Unknown column 'FINAL_PRICE_TTC' in 'where clause'
    Est-ce possible de faire cette opération? Si oui, quel est le problème?... Et sinon, comment dois-je m'y prendre?

    Merci pour votre aide.

  2. #2
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 788
    Points : 3 054
    Points
    3 054
    Par défaut
    C'est simple : tu ne peux pas utiliser le nom "virtuel"; tu dois utiliser toute l'expression. Oui, oui, c'est super ennuyeux mais il n'y a pas d'autre moyen.

    Donc, dans ta Where, remplace partout "FINAL_PRICE_TTC" par "(article.PRICE_TTC + (article.PRICE_TTC * promotion.PERCENT / 100))".

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

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