|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() apprentie développeur Inscription : juillet 2011 Messages : 4 ![]() |
Bonjour,
J'ai le cas suivant: id annee y 100 1989 1 100 1990 2 100 1991 3 100 2002 4 100 2003 8 100 2004 2 100 2005 1 105 1987 2 105 1988 9 105 1989 1 Je voudrais faire la somme de y, pour le même identifiant s'il y a au moins 3 ans consécutifs!!! J'ai aucune idée. Résultat attendu: id somme 100 1+2+3=6 100 4+8+2+1=15 105 - J'ai essayé avec une nouvelle variable qui me donne la difference entre y et LAG(y) mais j'arrive pas à alller plus loin!!! develap Merci d'avance, S.O.S. |
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 471 ![]() |
Bonjour.
Merci d'éviter de poster les messages en double dans plusieurs sections du forum. Cela demande ensuite aux modérateurs un travail de nettoyage et ça ne fait pas répondre plus vite à qui que ce soit. Je verrais un travail en plusieurs étapes (même si on peut probablement tout faire en une seule étape Data, en décomposant on peut vérifier des résultats intermédiaires). 1) marquer les blocs d'années consécutives d'un même ID 2) sommer, par blocs d'ID et d'années consécutives, les valeurs de Y 3) éliminer les sommes concernant moins de 3 lignes de détail. Pour l'étape 1 une étape DATA avec un SET BY (pour marquer les blocs d'ID) et une variable décalée sur l'année (LAG) devraient permettre de tester que dans un même bloc d'ID l'écart entre l'année en cours et l'année précédente n'excède pas 1. Si c'est le cas on ne change pas le n° du bloc, sinon on l'augmente. A la fin de cette étape, on a au moins dans la table les variables ID, Y et BLOC. Code :
L'étape 3, sur le résultat de l'étape 2, est un filtre décrit par un WHERE. Bon courage. Olivier |
||
|
|
20
|
|
|
#3 | ||
|
Invité de passage
![]() apprentie développeur Inscription : juillet 2011 Messages : 4 ![]() |
Merci. et je prends le conseil!!!
Bonne journée Code :
|
||
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() apprentie développeur Inscription : juillet 2011 Messages : 4 ![]() |
Aucune idée comment on fait pour poster le code!!!
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com