iNCiTE Web Posté 31 Août 2009 Posté 31 Août 2009 Hello J'ai un comportement étrange sur la requête suivante : SELECT id_compte, date_commande, auto_commande, mode_paiement, SUM( montant_fp ) FROM commandesWHERE auto_commande IN ( 3495, 3494, 3493 ) ORDER BY auto_commande Donc ça devrait renvoyer 3 enregistrements, mais si le champ montant_fp du SUM est à 0, il n'en renvoie que le dernier enregistrement ! Une idée ? Merci
SStephane Posté 31 Août 2009 Posté 31 Août 2009 Hello, C'est étrange ton utilisation de SUM, en général, il faut soit une jointure, soit un group by, soit qu'il n'y ait pas présence d'autres colonnes en dehors du calcul d'agrégations. Pour moi ton problème vient surement de là.
Portekoi Posté 31 Août 2009 Posté 31 Août 2009 Essaie ceci : SELECT id_compte, date_commande, auto_commande, mode_paiement, SUM( montant_fp ) FROM commandes group by id_compte, date_commande, auto_commande, mode_paiementHaving auto_commande IN ( 3495, 3494, 3493 ) ORDER BY auto_commande
iNCiTE Web Posté 31 Août 2009 Auteur Posté 31 Août 2009 Quel biquette ! Désolé de vous avoir dérangés... Il me semble que pour certaines agrégations (DISTINCT) MySQL produisait un message d'erreur, du coup je cherchais pas par là :rolleyes: Merci
iNCiTE Web Posté 31 Août 2009 Auteur Posté 31 Août 2009 Ah pardon j'ai posté avant de voir ta réponse, le GROUP_BY aavit bien sûr corrigé mon erreur !
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant