Requete avec somme, critere et group by
didou
-
didou -
didou -
Bonjour,
Je voudrais realisé une requete qui permet :
de calculer la somme du delaisSaisie avec certaine condition mais le probleme c'est que j'ai aussi des doublons .
Ma requete :
select sum('DelaisSaisie')
FROM 'tbl_refco'
WHERE 'DelaisSaisie'
BETWEEN 0
AND 365
AND month( 'CDG_Date_Statut_Octave' )
IN ( 5, 6 )
AND year( 'CDG_Date_Statut' ) =2010
group by 'NumContrat'
le resultat retourné est :
sum(DelaisSaisie)
63
174
13
3
21
6
76
26
0
4
14
9
19
3
0
0
0
3
11
11
11
11
5
0
19
32
0
4
58
0
Ce sont bien les données qu'il me faut , mais je voudrais le somme de tt ça .
Biensur j'ai penser à enlever le group by mais dans se cas là , j'ai qu'un seul resultat ( la somme) , mais e resultat n'est pas bon car il prend des doublons .
Si quelqu'un assai caller en SQL pourrais m'aidé sa serrai sympa
Merci .
Je voudrais realisé une requete qui permet :
de calculer la somme du delaisSaisie avec certaine condition mais le probleme c'est que j'ai aussi des doublons .
Ma requete :
select sum('DelaisSaisie')
FROM 'tbl_refco'
WHERE 'DelaisSaisie'
BETWEEN 0
AND 365
AND month( 'CDG_Date_Statut_Octave' )
IN ( 5, 6 )
AND year( 'CDG_Date_Statut' ) =2010
group by 'NumContrat'
le resultat retourné est :
sum(DelaisSaisie)
63
174
13
3
21
6
76
26
0
4
14
9
19
3
0
0
0
3
11
11
11
11
5
0
19
32
0
4
58
0
Ce sont bien les données qu'il me faut , mais je voudrais le somme de tt ça .
Biensur j'ai penser à enlever le group by mais dans se cas là , j'ai qu'un seul resultat ( la somme) , mais e resultat n'est pas bon car il prend des doublons .
Si quelqu'un assai caller en SQL pourrais m'aidé sa serrai sympa
Merci .
A voir également:
- Requete avec somme, critere et group by
- Somme de plusieurs cellules excel - Guide
- Somme si couleur - Guide
- Somme en anglais excel - Guide
- By click downloader ne fonctionne plus - Forum Enregistrement / Traitement audio
- Gd group ✓ - Forum Vos droits sur internet
4 réponses
Tu dois donner un nom a ton select.
SELECT SUM(tbl_temp.nb) FROM (
select sum('DelaisSaisie') as nb
FROM 'tbl_refco'
WHERE 'DelaisSaisie'
BETWEEN 0
AND 365
AND month( 'CDG_Date_Statut_Octave' )
IN ( 5, 6 )
AND year( 'CDG_Date_Statut' ) =2010
group by 'NumContrat'
) AS tbl_temp
Bonjour,
tu pourrais essayer avec une requête imbriquée :
tu pourrais essayer avec une requête imbriquée :
SELECT SUM(nb) FROM (
select sum('DelaisSaisie') as nb
FROM 'tbl_refco'
WHERE 'DelaisSaisie'
BETWEEN 0
AND 365
AND month( 'CDG_Date_Statut_Octave' )
IN ( 5, 6 )
AND year( 'CDG_Date_Statut' ) =2010
group by 'NumContrat'
)
J'ai essayé comme tu ma dit c.a.d :
SELECT sum( nb )
FROM (
SELECT sum( 'DelaisSaisie' ) AS nb
FROM 'tbl_refco'
WHERE 'DelaisSaisie'
BETWEEN 0
AND 365
AND month( 'CDG_Date_Statut_Octave' )
IN ( 5, 6 )
AND year( 'CDG_Date_Statut_Octave' ) =2010
GROUP BY 'NumContrat_Avenant'
)
Et PhpMyAdmin ma genere une ereure :
Every derived table must have its own alias
Chaque table dérivée doit avoir son propre alias
Apparement la requete imbrique ne marche pas .
Jte remercie quand mm pour ton aide .
Si ta d'autres idée n'esite pas .
SELECT sum( nb )
FROM (
SELECT sum( 'DelaisSaisie' ) AS nb
FROM 'tbl_refco'
WHERE 'DelaisSaisie'
BETWEEN 0
AND 365
AND month( 'CDG_Date_Statut_Octave' )
IN ( 5, 6 )
AND year( 'CDG_Date_Statut_Octave' ) =2010
GROUP BY 'NumContrat_Avenant'
)
Et PhpMyAdmin ma genere une ereure :
Every derived table must have its own alias
Chaque table dérivée doit avoir son propre alias
Apparement la requete imbrique ne marche pas .
Jte remercie quand mm pour ton aide .
Si ta d'autres idée n'esite pas .
ça marche !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Au debut j'ai le méme resultat que si je fait seulement :
select sum('DelaisSaisie')
FROM 'tbl_refco'
WHERE 'DelaisSaisie'
BETWEEN 0
AND 365
AND month( 'CDG_Date_Statut_Octave' )
IN ( 5, 6 )
AND year( 'CDG_Date_Statut' ) =2010
group by 'NumContrat'
Mais en rajoutant un distinct devant 'DelaisSaisie' , je trouve le bon resultat .
SELECT sum( nb )
FROM (
SELECT sum( DISTINCT 'DelaisSaisie' ) AS nb
FROM 'tbl_refco'
WHERE 'DelaisSaisie'
BETWEEN 0
AND 365
AND month( 'CDG_Date_Statut_Octave' )
IN ( 5, 6 )
AND year( 'CDG_Date_Statut_Octave' ) =2010
GROUP BY 'NumContrat_Avenant'
) AS tbl_temp
Merci beaucoup pour ton aide .
Au debut j'ai le méme resultat que si je fait seulement :
select sum('DelaisSaisie')
FROM 'tbl_refco'
WHERE 'DelaisSaisie'
BETWEEN 0
AND 365
AND month( 'CDG_Date_Statut_Octave' )
IN ( 5, 6 )
AND year( 'CDG_Date_Statut' ) =2010
group by 'NumContrat'
Mais en rajoutant un distinct devant 'DelaisSaisie' , je trouve le bon resultat .
SELECT sum( nb )
FROM (
SELECT sum( DISTINCT 'DelaisSaisie' ) AS nb
FROM 'tbl_refco'
WHERE 'DelaisSaisie'
BETWEEN 0
AND 365
AND month( 'CDG_Date_Statut_Octave' )
IN ( 5, 6 )
AND year( 'CDG_Date_Statut_Octave' ) =2010
GROUP BY 'NumContrat_Avenant'
) AS tbl_temp
Merci beaucoup pour ton aide .