|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Administrateur de base de données Inscription : juillet 2006 Messages : 109 ![]() |
Bonjour
ma table activités contient principalement 5 champs code (pk) plan dateprev datereal equipement précisions: datereal est nulle tant que plan pas réalisé pour équipement dateprev toujours renseignée je voudrais compter par un seul select le nombre de réalisés et prévus par plan sur une periode donnée (datedeb-datefin) groupés par mois (tout equipement confondus) pour un plan donné (where plan =:V_PLAN and ((dateprev between :datedeb and :datefin) or (datereal between :datedeb and :datefin) ) mon problème est de trouver la bonne date de regroupement ci dessous compte tenu des précisions ci dessus GROUP BY to_char (DATE,'YYYY-MM') R&sultat attendu: mois réalisés prévus 2007-01 12 25 2007-02 05 15 2007-03 x y etc |
|
|
00
|
|
|
#2 | ||
![]() Salim Développeur et DBA Oracle Inscription : octobre 2006 Messages : 872 ![]() |
Bonjour ,
Essaies ce code Code :
|
||
|
|
00
|
|
|
#3 | ||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 450 ![]() |
Un peu plus simple :
Code :
__________________
More Code : More Bugs. Less Code : Less Bugs |
||
|
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Administrateur de base de données Inscription : juillet 2006 Messages : 109 ![]() |
Pour la 1 ère solution code est une séquence oracle pk de la table activités donc un group by donnerait 1 seule ligne à compter?
La 2 ème solution fonctionne très bien mais maintenant si je veux compter non plus les mois séparement mais en cumulant les prévus et réalisés par mois depuis datedeb jusqu'à datefin est ce réalisable en partant de ce sql ou faut il repenser Complètement le problème? |
|
|
00
|
|
|
#5 | |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 450 ![]() |
Citation:
Tu as la fonction oracle "+" qui fonctionne très bien
__________________
More Code : More Bugs. Less Code : Less Bugs |
|
|
|
00
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() Administrateur de base de données Inscription : juillet 2006 Messages : 109 ![]() |
je cherche ...mais plutot coté fonctions statistiques oracle(over ...partition by )
à savoir si en oracle 8i c'est implémenté? |
|
|
00
|
|
|
#7 | ||||
![]() Salim Développeur et DBA Oracle Inscription : octobre 2006 Messages : 872 ![]() |
Bonjour ,
Code :
Code :
|
||||
|
|
00
|
|
|
#8 | ||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 450 ![]() |
Prend le sous-select comme une vue qui te donne 2 lignes par mois (où il y a au moins une date prev ou real). Après tu peux en faire ce que tu veux en 1 seul SELECT FROM VUE GROUP BY MOIS
Code :
__________________
More Code : More Bugs. Less Code : Less Bugs |
||
|
|
00
|
|
|
#9 |
|
Candidat au titre de Membre du Club
![]() Administrateur de base de données Inscription : juillet 2006 Messages : 109 ![]() |
je ne parlaiis pas de cumuler réalisés avec prévus
mais séparement les réalisés et les prévus de datedeb à chaque occurence des mois suivant jusqu'à detefin par exemple si on prend datedeb=01/01/2006 et datefin = 31/12/2006 mois prevus réalisés 01 X01 Y01 02 (X02+X01) (Y02+Y01) 03 (X01+X02+X03) (Y01+Y02+Y03) 04 etc |
|
|
00
|
|
|
#10 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 450 ![]() |
Ben voila, avec un petit exemple.. on cherche moins
Les fonctions analytiques seules peuvent faire celà (après faut voir en 8i ce qui est faisable): http://lalystar.developpez.com/fonctionsAnalytiques/
__________________
More Code : More Bugs. Less Code : Less Bugs |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com