SQL - Mélanger DISTINCT et SUM ??

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : SQL - Mélanger DISTINCT et SUM ??

par lacfab » 28 janv. 2009, 18:47

argh oui mais là pas possible LOL car c'est beaucoup plus complexe que l'exemple que j'ai donné ...

en gros j'ai un while qui affiche

TITRE A
TITRE B
TITRE C

et un second while qui affiche (dans un tableau et tout et tout)

A1 A2 A3 A4 A5 A6 ....
B1 B2 B3 B4 B5 B6 ...
C1 C2 C3 C4 C5 C6 ...

A1 (par exemple) est la somme de tous les A1 correspondant à "titre A" à une date donnée, avec d'autres conditions que je vous épargnerai.

J'ai retourné le problème dans tous les sens je n'ai pas le choix que d'imbriquer deux while.

edit : à préciser que le chargement de la page se fait assez rapidement malgré le grand nombre de requêtes.

par albat » 28 janv. 2009, 18:36

Si tu le souhaites, tu peux montrer ta solution.
Je pense qu'elle doit être optimisable...

:idea: De manière générale, éviter autant que possible les requêtes imbriquées.

par lacfab » 28 janv. 2009, 14:12

Non en fait j'ai résolu le probleme ...
j'ai imbiqué deux while l'un dans l'autre avec deux requêtes ... comme quoi laisser de côté quelques jours ça aide j'ai trouvé en 5 minutes :)

Merci quand même ;)

par albat » 23 janv. 2009, 16:44

As-tu regardé du côté de GROUP BY ?...

par lacfab » 23 janv. 2009, 14:41

en fait j'ai une liste qui se présente comme telle :

A-5
C-2
B-2
A-3
B-1
C-5
C-2

actuellement il m'affiche autant de lignes que de wt_palissade_id ... donc ça ressemble à ça : les totaux sont bons certes mais ...
A-8
C-9
B-3
A-8
B-3
C-9
C-9



alors que moi je veux une ligne par wt_stock_id (voire dans les conditions de ma requête). Voilà ce qu'il me faudrait :
A-8
B-3
C-9
Bon évidement il y a d'autres conditions mais le résultat sera le même ...

par albat » 23 janv. 2009, 12:47

Peut-être ta question a-t-elle désorienté ses lecteurs...

Par définition, sum() est une fonction d'agrégation qui ne renvoie qu'un résultat : le total calculé.
Il est donc inapproprié de vouloir identifier de manière unique les valeurs parcourues.

Ou je n'ai pas compris ta question...

par lacfab » 23 janv. 2009, 11:59

Personne ne peux me venir en aide ? :oops:

SQL - Mélanger DISTINCT et SUM ??

par lacfab » 21 janv. 2009, 09:45

Hello,

J'ai actuellement la requete :

Code : Tout sélectionner

SELECT SUM(wt_palissade_stock01) as stock01 FROM WALLTEK_PALISSADE where (wt_palissade_stock01!='' OR wt_palissade_stock01!='0') AND wt_palissade_datepose <= '".$day."' AND wt_palissade_datedepose >= '".$day."' AND wt_palissade_id_poseur='".$stock['wt_stock_id']."'";
seulement le résultat ne me convient pas l'idéal serait que je mette un disctinct par dessus ...
est ce possible de mélanger disctinct et sum ?

Code : Tout sélectionner

CREATE TABLE IF NOT EXISTS `WALLTEK_PALISSADE` ( `wt_palissade_id` int(11) NOT NULL auto_increment, `wt_palissade_numdossier` int(6) NOT NULL default '0', `wt_palissade_datepose` date NOT NULL default '0000-00-00', `wt_palissade_datedepose` date NOT NULL default '0000-00-00', `wt_palissade_stock01` varchar(3) NOT NULL default '0', `wt_palissade_id_poseur` varchar(3) NOT NULL, PRIMARY KEY (`wt_palissade_id`) );