nathapla
Messages postés4Date d'inscriptionjeudi 8 juin 2006StatutMembreDernière intervention15 mai 2007
-
26 oct. 2006 à 11:47
nathapla
Messages postés4Date d'inscriptionjeudi 8 juin 2006StatutMembreDernière intervention15 mai 2007
-
27 oct. 2006 à 14:42
Bonjour à tous,
J'ai un petit problème avec GROUP BY.
Je vous explique, j'ai une table 'depense' où il y a comme champs : id_uti, date, titre, prix.
Je voudrais faire une fiche par personne. Si il y a la même date et le même titre, les regrouper.
ma requête :
SELECT * FROM depense
WHERE id_uti=$uti
GROUP BY titre,date
ORDER BY date
Le problème c'est que si il y a le même titre et une date différente (et vis et versa), ça me le regroupe quand même.
J'espère que j'ai été assez claire.
Merci d'avance.
cs_Malkuth
Messages postés268Date d'inscriptionsamedi 22 février 2003StatutMembreDernière intervention24 avril 20134 26 oct. 2006 à 17:30
Je pense que le * du select n'est pas terrible,
Essai d'abort ceci :
SELECT titre,date
FROM depense
WHERE id_uti=$uti
GROUP BY titre,date
ORDER BY date
Ensuite si tu as besion des autres champs, il faut les agréger avec une fonction comme SUM(Somme), AVG(Moyenne) ou les ajouter aussi au group by :
Sinon SQL ne sait pas quoi en faire :
imagine ces donnée :
1 01/02/03 'Titre1' 0,50?
2 01/02/03 'Titre1 0,70?
SQL doit t'il renvoyer
1 01/02/03 'Titre1' 0,50?
OU
2 01/02/03 'Titre1' 0,70?
OU
3 01/02/03 'Titre1' 1,20?
OU
1 01/02/03 'Titre1' 0,60?
OU .....
????
Donc voilà quelque chose de plus intéréssant :
SELECT
id_util
titre,
date,
SUM(prix),
FROM depense
WHERE id_uti=@uti
GROUP BY id_util,titre,date
ORDER BY date
Remarque que j'ai rajouter id_util dans le group by, étant donnée que id_util est forcé par le where, tu as le choix de l'enlevé du select et du group by, ou de le mêtre dans les deux mais tu ne peux pas le mettre seulement dans le select , vu que la valeur est toujours la même le fais de le rajouter dans le group by n'as pas d'incidence sur le résultat.
J'espère que j'ai été clair si ca ne marche pas donne nous un détail des donnée de départ, des donnée sortie par la requette et de la sortie que tu attends.