Bonjour
J'ai une table
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 CREATE TABLE demande ( id int(11) NOT NULL auto_increment, refartisan int(11) null, nombre tinyint NOT NULL, )
chaque artisan peut faire plusieurs demandes, et la valeur de "nombre" peut être 1 ou 2
La plus part des artisans font soit
- 1 demande avec nombre = 1 ou nombre =2
- 2 demande avec nombre = 1
Mais il peut arriver que des artisans fasse plus de demande si bien pour pour cet artisan la somme de "nombre" soit supérieure à 2.
Je voudrais avoir la liste de ces artisans.
Si je fais
je trouve bien les artisans qui ont fait des demandes surnuméraires mais ca ne m'affiche que la première demande de chaque artisan.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 select * from demande group by refartisan having sum(nombre)>2
Je souhaiterai les voir toutes.
J'ai essayé avec une sous-requete :
Ca marche bien mais les temps de réponse ne sont pas très bon et pour l'instant la table est pas très grosse (en vérité la requete principale est faite sur une vue un peu grosse ce qui aggrave la situation).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 select * from demande where refartisan in ( select refartisan from demande group by refartisan having sum(nombre)>2 )
Y-at-il une autre alternative plus efficace ?
Partager