OVH Cloud OVH Cloud

Aggregat SQL

2 réponses
Avatar
Christophe
Voila j'ai uen requete de ce type y'a t'il un moyen de connaitre de nombre
d'enregistrement sans devoir la re encapsuler dans une autre requete de
comptage ?

Merci !

SELECT count(T.Nbr) AS NBr
FROM (


SELECT
count(*) AS Nbr
FROM
TableA AS F
LEFT JOIN TableB AS JF ON JF.ID = F.id
WHERE
JF.ref is null
and isnull(JF.isIgnore, 0) = 0
GROUP BY
F.TO,
F.TI,
F.Re,
F.Ac,
F.DateSortie

) T

2 réponses

Avatar
Christian Robert
Bonjour,

Si vous souhaitez obtenir le nombre d'enregistrements total de cette requête :

SELECT count(*) AS Nbr
FROM TableA AS F
LEFT JOIN TableB AS JF ON JF.ID = F.id
WHERE JF.ref is null and isnull(JF.isIgnore, 0) = 0
GROUP BY F.TO, F.TI, F.Re, F.Ac, F.DateSortie

Sans avoir recours à une sous requête, vous pouvez essayez en ajoutant WITH
ROLLUP derrière le GROUP BY, celà va vous ajouter un ou plusieurs
enregistrements supplémentaires qui vaudront NULL pour tous les champs inclus
dans le GROUP BY, avec pour effet de faire des "sous calculs" pour les
fonctions tels que COUNT(*).

Sinon avec la sous requête je ne vois pas le problème cela fonctionne très
bien.

--
Cordialement,
Christian Robert http://blogs.developpeur.org/christian/
MCT - Database Development / Database Administration


"Christophe" a écrit :

Voila j'ai uen requete de ce type y'a t'il un moyen de connaitre de nombre
d'enregistrement sans devoir la re encapsuler dans une autre requete de
comptage ?

Merci !

SELECT count(T.Nbr) AS NBr
FROM (


SELECT
count(*) AS Nbr
FROM
TableA AS F
LEFT JOIN TableB AS JF ON JF.ID = F.id
WHERE
JF.ref is null
and isnull(JF.isIgnore, 0) = 0
GROUP BY
F.TO,
F.TI,
F.Re,
F.Ac,
F.DateSortie

) T





Avatar
Christophe
oui c'est cette derniere que j'ai retenu
mais c'ete histoire de savoir si il y'avait une autre possibilité !
j'ai appris pleins de trucs comme ça !
Ch.



"Christian Robert" <christian.robert(sansspam)@winwise.fr> a écrit dans le
message de news:
Bonjour,

Si vous souhaitez obtenir le nombre d'enregistrements total de cette


requête :

SELECT count(*) AS Nbr
FROM TableA AS F
LEFT JOIN TableB AS JF ON JF.ID = F.id
WHERE JF.ref is null and isnull(JF.isIgnore, 0) = 0
GROUP BY F.TO, F.TI, F.Re, F.Ac, F.DateSortie

Sans avoir recours à une sous requête, vous pouvez essayez en ajoutant


WITH
ROLLUP derrière le GROUP BY, celà va vous ajouter un ou plusieurs
enregistrements supplémentaires qui vaudront NULL pour tous les champs


inclus
dans le GROUP BY, avec pour effet de faire des "sous calculs" pour les
fonctions tels que COUNT(*).

Sinon avec la sous requête je ne vois pas le problème cela fonctionne très
bien.

--
Cordialement,
Christian Robert http://blogs.developpeur.org/christian/
MCT - Database Development / Database Administration


"Christophe" a écrit :

> Voila j'ai uen requete de ce type y'a t'il un moyen de connaitre de


nombre
> d'enregistrement sans devoir la re encapsuler dans une autre requete de
> comptage ?
>
> Merci !
>
> SELECT count(T.Nbr) AS NBr
> FROM (
>
>
> SELECT
> count(*) AS Nbr
> FROM
> TableA AS F
> LEFT JOIN TableB AS JF ON JF.ID = F.id
> WHERE
> JF.ref is null
> and isnull(JF.isIgnore, 0) = 0
> GROUP BY
> F.TO,
> F.TI,
> F.Re,
> F.Ac,
> F.DateSortie
>
> ) T
>
>
>