Bonjour a tous,
Voici mon premier problème du jour : réaliser un count(*) sur une requête comprenant un group by

Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
select count(*) from masupd_attr where id_op = 150 group by dn

me renvoyai 5 ligne avec le nombre de dn correspondant alors que je souhaitai justement récupérer le nombre de lignes renvoyer (5)

j'ai donc écrit ceci

Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
select count(*) from (select dn from masupd_attr where id_op = 150 group by dn);

qui fonctionne parfaitement bien.

Le problème est que cette requête est destinée a être une sous requête d'une requête plus grosse et que le le id_op (150) doit être en réalité une colonne dans la requête principale (je crains de mal m'exprimer il y a surement un nom pour cela mais je ne le connais pas) voici l'exemple.

Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
SELECT op.id,op.user_dn,op.date_op,wmsys.wm_concat(distinct attr.attr) as attr, 
(select count (*) from (select dn from masupd_attr where id_op = op.id group by dn)) as nb_user
FROM masupd_op op INNER JOIN masupd_attr attr ON op.id = attr.id_op
WHERE id IN (SELECT id_op FROM masupd_attr WHERE attr = 'c' OR attr = 'telephonenumber' GROUP BY id_op)
HAVING op.user_DN LIKE '%ocs%'
GROUP BY op.id,op.user_dn,op.date_op
ORDER BY op.id;

lorsque j'utilise une seul sous requête (premier cas qui malheureusement ne fonctionnai pas) j'ai le droit d'utiliser op.id, mais lorsqu'il y a 2 sous requête la "variable" n'est plus disponible.
Voyez vous une solution ? je m'y prend peut être très mal et la solution est peut être évidente mais je ne trouve pas rien y fais.