|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : avril 2006 Messages : 133 ![]() |
Bonjour,
je suis confronté à un problème qui me pose la question de l'itération face au SQL (ensembliste) et je ne sais pas comment m'en dépatouiller. Voici le tableau que je souhaite obtenir (Année, Mois, WrittenContribution sont faciles à extraire de la BDD existante) : Annee|Mois|WrittenContribution|EarnedContribution A1 |1 |101 |101/12 A1 |2 |102 |(101+102)/12 A1 |3 |103 |(101+102+103)/12 A1 |4 |104 |(101+102+103+104)/12 A1 |5 |105 |(101+102+103+104+105)/12 ... An |Mn |wc(n) |(wc(n-12)+wc(n-11)+...+wc(n))/12 EarnedContribution est la colonne prenant comme valeur à la ligne n, la somme des writtenContribution des 11 lignes précédente avec la ligne n, divisée par 12. Sauriez vous comment calculer cet indicateur dans SQL server et aboutir à ce type de tableau ? Merci, je vous souhaite une excellente journée |
|
|
00
|
|
|
#2 | ||
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 725 ![]() |
Bonjour,
Une solution : Code :
|
||
|
00
|
|
|
#3 | ||
![]() ![]() |
Avec une jointure plutôt qu'une requête scalaire :
Code :
__________________
Email : http://scr.im/waldar |
||
|
00
|
|
|
#4 |
|
Membre du Club
![]() Inscription : avril 2006 Messages : 133 ![]() |
Merci mikedavem,
malheureusement, votre solution ne fonctionne pas pour des valeurs à cheval sur deux années... Auriez-vous d'autres idées ? Bonne journée |
|
|
00
|
|
|
#6 | ||
![]() ![]() |
En fait il faut convertir les Annee / Mois en une date qu'on pourra comparer plus simplement.
Soit on passe par une vue pour éviter les fonctions de conversions un peu lourdes, soit on le met directement dans la requête : Code :
__________________
Email : http://scr.im/waldar |
||
|
10
|
|
|
#7 |
|
Membre du Club
![]() Inscription : avril 2006 Messages : 133 ![]() |
Merci beaucoup, c'est une super solution !
Bravo ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com