[RESOLU] Petit probleme de "recensement"

Petit nouveau ! | 4 Messages

21 août 2012, 05:55

Salut tout le monde!

Je me casse la tête depuis hier soir pour trouver la bonne requête mais je m'embourbe a chaque fois dans des subqueries sans parvenir a ce que je veux. Pour simplifier le probleme, ma table initiale ressemble a ca:
Differents utilisateurs (users) ont des objets (object_id) dans differents etats (position). C'est le cas classique d'une chaine de production.

user | object_id | position

A 100 1
A 101 2
A 102 3
B 103 2
B 104 2
C 105 1
C 106 3
D 107 3
E 108 1
E 109 1
E 110 3
E 111 3


Et je voudrais recuperer une liste de tous les users qui ont au moins un objet en position 3 (mais pas les users dont tous les objets sont en position 3) ainsi que le total d'objets a chaque position.
En gros j'aimerais avoir:


user |position_ 1 | position_2 | position_3

A 1 1 1
C 1 0 1
E 2 0 2

Je peux vous envoyer ce que j'ai mais c'est pas fou ^^
Si quelqu'un peut me donner une piste, je prend!

PS: Je suis nouveau sur le forum donc si j'ai mal fait quelque chose, n'hesitez pas a me le dire.

Edit: J'utilise HeidiSQL si ca peut servir.

ViPHP
ViPHP | 2577 Messages

21 août 2012, 09:09

Peut être :
select user, sum(if(position=1,1,0)) as position_1, sum(if(position=2,1,0)) as position_2, sum(if(position=3,1,0)) as position_3 
from TaTable
group by user
having (position_1 > 0 or position_2 > 0) and position_3 > 0

Petit nouveau ! | 4 Messages

21 août 2012, 09:27

Nickel, ca marche!
Merci beaucoup, je n'y aurai pas pensé.

Bonne journée a tous