SQL: select count() as xxxx

Forum de développements privés.

Modérateur: Equipe

Règles du forum
A lire impérativement sur notre page : Règlement

SQL: select count() as xxxx

Messagepar Ani' » 04 Fév 2005 à 01:11

Bonsoir,


J'ai un petit problème avec cette fonction de groupement sql...

Ma requete:
Code: Tout sélectionner
	$sql = " SELECT count(cl.card_id) AS selled , c.* FROM phpbb_cards c, phpbb_cards_list cl 
		WHERE cl.card_num = c.card_num
			AND c.card_quantity > selled
			AND c.card_level < 5
		GROUP BY cl.card_num
		ORDER BY rand() LIMIT 5 ";

et ça me retourne une erreur "champ 'selled' inconnu dans la clause 'where'"

(j'ai essayé avec cl.selled, c'est encore pire...)

Donc mes questions, tout d'abord:
-est-il possible de réutiliser le "champ virtuel" généré par "count() as" à l'intérieur même de la requete ?
-et si oui, comment faire ? où est mon erreur ??


Merci d'avance :)

rem: si je vire la partie "AND c.card_quantity > selled" la requete fonctionne très bien... (mais forcément le résultat est différent de celui souhaité)
----
Avatar de l’utilisateur
Ani'
Dieu des floodeurs
Dieu des floodeurs
 
Messages: 6055
Enregistré le: 01 Juin 2003 à 00:07
Localisation: 127.0.0.1

Messagepar korko » 04 Fév 2005 à 20:02

Code: Tout sélectionner
   $sql = " SELECT count(cl.card_id) AS selled , c.* FROM phpbb_cards c, phpbb_cards_list cl
      WHERE cl.card_num = c.card_num
         AND c.card_quantity > count(cl.card_id)
         AND c.card_level < 5
      GROUP BY cl.card_num
      ORDER BY rand() LIMIT 5 ";


Pourquoi faire compliquer quand on peut faire simple ?
korko
Apprenti-floodeur
Apprenti-floodeur
 
Messages: 1334
Enregistré le: 09 Aoû 2003 à 14:48
Localisation: Entre 2 variables

Messagepar Ani' » 04 Fév 2005 à 20:09

parce que ça ne marche pas... ça me renvoit une erreur quand j'essaye d'utiliser count() dans la clause where :?
----
Avatar de l’utilisateur
Ani'
Dieu des floodeurs
Dieu des floodeurs
 
Messages: 6055
Enregistré le: 01 Juin 2003 à 00:07
Localisation: 127.0.0.1

Messagepar Dr DLP » 04 Fév 2005 à 21:25

Les fonctions groupes (COUNT(), COUNT(DISTINCT ...), AVG(), STD(), SUM(), MAX(), MIN(), et GROUP_CONCAT()) ne fonctionnent qu'avec SELECT malheureusement.
Avatar de l’utilisateur
Dr DLP
Floodeur universel
Floodeur universel
 
Messages: 8411
Enregistré le: 05 Mar 2003 à 23:49
Localisation: Var ( 83 )

Messagepar Ani' » 04 Fév 2005 à 21:46

Et donc y'a aucun moyen d'utiliser un "champ virtuel" dans le where ?

Enjfin bon c'est dommage mais au moins ça me rassure un peu: l'erreur venait pas vraiment de moi :P


Merci à tous les deux :)
Ani'
----
Avatar de l’utilisateur
Ani'
Dieu des floodeurs
Dieu des floodeurs
 
Messages: 6055
Enregistré le: 01 Juin 2003 à 00:07
Localisation: 127.0.0.1


Retourner vers Développements privés

 


  • Articles en relation
    Réponses
    Vues
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité