Bonjour,
Contexte :
J'ai 4 tables :
T_CL_CLIENT
CL_ID pk
CL_LABEL
...
T_CA_CATEGORY
CA_ID pk
CA_LABEL
...
T_TK_TASK
TK_ID pk
TK_CA_ID fk
...
et enfin
T_TC_TASK_TO_CLIENT
TC_ID pk
TC_CL_ID fk
TC_TK_ID fk
Chaque categorie peut avoir plusieurs taches et chaque client ne peut avoir au plus qu'une tache par categorie (0,1)
Ce que je veux faire :
Récupérer pour chaque client s'il a une tache ou pas pour chacune des catégories
ex:
Ce que je sais faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 CL_LABEL CA_LABEL ETAT cl1 cat1 0 cl1 cat2 1 cl1 cat3 1 cl2 cat1 1 cl2 cat2 0 cl2 cat3 1
J'arrive facilement (c'était pas trop dur) à récupérer les categories pour lesquelles le client à une taches à faire:
Par contre, je n'arrive pas récupérer les categories pour lesquelles mes clients n'ont pas de taches
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT CL_LABEL, CA_LABEL, 1 AS ETAT FROM T_CA_CATEGORY INNER JOIN T_TK_TASK ON TK_CATEGORY_ID = CA_ID INNER JOIN T_TC_TASK_TO_CLIENT ON TC_TASK_ID = TK_ID INNER JOIN T_CL_CLIENT ON CL_ID = TC_CL_ID ORDER BY CL_ID, CA_ID
Est-ce que qq'un a une idée ? une piste ?
d'avance
Ps: Si vous avez une idée pour obtenir un résultat de ce genre :
Ca me va aussi, mais rien que la 1ere me réjouirait
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 CL_LABEL cat1 cat2 cat3 cl1 0 1 1 cl2 1 0 1
encore
Ps2: Je suis sur sql Server 2005 mais je ne pense pas ce soit très important
Ps3: Désolé, je n'ai pas trouvé de titre plus explicite![]()
Partager